Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    PB affichage stable d'une map Google à partir du module intégrable proposé
    Ce message n'a pas pu être affiché car il comporte des erreurs.

  2. #2
    Rédacteur

    Bonjour,
    En regardant sur mes applications utilisant la même api je m'aperçoit que Google a modifié sa gestion de l'api
    Avant, ils faisaient des statistiques d'utilisation par rapport à l'IP appelante, désormais il faut passer par une clé d'API

    Plus d'information ici:
    https://developers.google.com/maps/d...messages?hl=Fr

    Il va me falloir modifier le module ainsi que les tutoriaux pour expliquer comment faire
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Candidat au Club
    RE
    Bjr,

    J'ai eu la même inspiration et ai généré un key personnel sur le site maps.google.
    Le l'ai rajouté à la fin de la commande suivante :
    Code javascript :Sélectionner tout -Visualiser dans une fenêtre à part
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=<numero de la cle>"></script>

    Je n'ai pas d'amélioration. par ailleurs, le parametre sensor n'est plus obligatoire.

    cdt

  4. #4
    Rédacteur

    Bonjour,
    je viens de generer une clé api sans restriction pour tester

    j'ai édité ensuite le fichier module/googleMap/view/map.php et modifié la première ligne en
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false&key=
    maCleAPIcmVaSfNhjlZxAXXXZZZ"></script>


    et ça fonctionne:



    note: j'ai laissé l'attribut "sensor" à false
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Candidat au Club
    PB affichage stable d'une map Google à partir du module intégrable proposé
    Bonjour,

    Je confirme, avec un Key généré sur le site googlemap Api, tout fonctionne correctement.

    Ceci étant validé, ma problématique du moment est de pouvoir dynamiquement afficher des marqueurs d'objets géoréférencés issus d'un model quelconque disposant de 2 type de coordonnées :
    - soit une adresse (formatée au sens Googlemap)
    - soit des coordonnées latitude et longitude

    Je dispose donc d'un module GoogleMap importé à partir de Github.
    Je créer, dans mon application Web autant de module d'affrichage pour chacune des tables de ma base de données (ayant des coordonnées
    conformes à ce qui est attendu par le module GoogleMap , c-a-d la fonction addPositionWithContengt() par exemple).
    Ces modules implémentent uniquement la fonction _list().

    A quel endroit dois-je implémenter la boucle foreach() et comment lui passer les paramètres correctement.

    A titre d'exemple, je veux afficher les sites de déchèterie issues d'un module listDecheterie :

    1- J'ai crée un module embedded pour récupérer une sous sélection de sites à afficher (marqueurs)
    module/listDecheterie/main.php
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    (...)
    public function _list(){
     
    		$tListDecheterie=model_siteintervention::getInstance()->findAllDecheterie('DECHETERIE');
     
    		$oView=new _view('listDecheterie::list');
    		$oView->tListDecheterie=$tListDecheterie;
     
    		$oView->tJoinmodel_siteintervention=model_siteintervention::getInstance()->getSelect();
     
    		return $oView;
    	}
    (...)
    2-dans la vue du module GoogleMap,
    moduloe/gogoleMap/view/map.php
    Code javascript :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=<ma_cle>"></script>
     
    <script>var map;
     
    	var initialize;
    	var geocoder;
     
    	function initialize(){
    		geocoder=new google.maps.Geocoder();
    		var latLng = new google.maps.LatLng(-21.0096300, 55.2707100);		// commune de Saint-Paul de la Réunion (97420)
    		var myOptions = {
    			zoom      : <?php echo $this->iZoom?>,
    			center    : latLng,
    			mapTypeId : google.maps.MapTypeId.TERRAIN, // Type de carte, différentes valeurs possible HYBRID, ROADMAP, SATELLITE, TERRAIN
    			maxZoom   : 19
    		};
    		map      = new google.maps.Map(document.getElementById('map'), myOptions);
    	}

    Ajout de la Key et des coordonnées du centre de la carte

    3- Dans le module par défaut (/module/default/main.php), j'ai rajouté une fonction _googleMap() pour l'affichage de la carte et la génération des marqueurs des sites à affiche sur la carte

    module/default/main.php
    (...)
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    public function _googleMap(){
     
    		//instancier le module
    		$oModulelistDecheterie=new module_listDecheterie();
     
    		//si vous souhaitez indiquer au module integrable des informations sur le module parent
    		$oModulelistDecheterie->setRootLink('listDecheterie::list',array('oModuleGoogleMap'=>_root::getParam('oModuleGoogleMap')));
     
    		//recupere la vue du module
    		$oViewModule=$oModulelistDecheterie->_index();
     
    		//assigner la vue retournee a votre layout
    		$this->oLayout->add('main',$oViewModule);
     
    	$tListDecheterie=model_siteintervention::getInstance()->findAllDecheterie('DECHETERIE');
     
    		$oView=new _view('listDecheterie::list');
    		$oView->tListDecheterie=$tListDecheterie;
     
    		$oView->tJoinmodel_siteintervention=model_siteintervention::getInstance()->getSelect();
     
    		$oModuleGoogleMap=new module_googleMap();
    		$oModuleGoogleMap->setWidth(950);
    		$oModuleGoogleMap->setHeight(450);
    		$oModuleGoogleMap->setZoom(12);
     
    		$this->oLayout=new _layout('bootstrap');
    		$this->oLayout->addModule('menu','menu::index');
     
    		// Instancier le module GoogleMap
    		$this->oLayout->add('main',$oModuleGoogleMap->getMap());
     
    		// Ajouter les marqueurs des déchèteries
    //		if($tListDecheterie) {
    //			foreach($tListDecheterie as $oListDecheterie){
    //				$oModuleGoogleMap->addPositionWithContent($oListDecheterie->adresse_site.','.$oListDecheterie->nom_site.',lien',array(
    //								'<h3>'.$oListDecheterie->nom_site.'</h3>'));
    //				$oModuleGoogleMap->addPositionWithCoord($oListDecheterie->coord_latitude, $oListDecheterie->coord_longitude);
    //			}
    //		}
     
    //		$this->oLayout->add('main',$oModuleGoogleMap->getMap());
     
    		$oModuleGoogleMap=new module_googleMap();
    		$oModuleGoogleMap->setWidth(950);
    		$oModuleGoogleMap->setHeight(450);
    		$oModuleGoogleMap->setZoom(12);
     
    		// Marquerr du Camping Ermitage
    		$oModuleGoogleMap->addPositionWithContent('Avenue de Bourbon, Ermitage-les-Bains, 97411 Saint-Paul','Camping ermitage',array(
    													'<h3>Camping ermitage</h3>',
    													'<p>Ermitage-les-Bains</p>'
    													));
    		// marqueurs des 5 Cyber Bases
    		$oModuleGoogleMap->addPositionWithContent('Evariste de Parny, 97419 La Possession','CyberBase Possession',array(
    													'<h3>CyberBase Possession</h3>',
    													'<p>Médiathèque HEVA</p>',
    													'<p>Evariste de Parny</p>'
    													));
    		$oModuleGoogleMap->addPositionWithContent('Avenue du 20 Décembre, 97420 Le Port','CyberBase Le Port',array(
    													'<h1>CyberBase Le Por</h1>',
    													'<p>Médiathèque Benopite Boulard</p>',
    													'<p>Avenue du 20 Décembre</p>'
    													));
    		$oModuleGoogleMap->addPositionWithContent('13 Chemin des Jacarandas, 97426 Trois-Bassin','CyberBase Trois-Bassins',array(
    													'<h3>CyberBase Trois-Bassins</h3>',
    													'<p>13 Chemin des Jacarandas</p>'
    													));
    		$oModuleGoogleMap->addPositionWithContent('110 Boulevard du Front de Mer, 97460 Saint-Paul','CyberBase Saint-Paul',array(
    													'<h3>CyberBase Saint-Paul</h3>',
    													'<p>Médiathèque Leconte Delisle</p>',
    													'<p>110 Boulevard du Front de Mer</p>'
    													));
    		$oModuleGoogleMap->addPositionWithContent('221 A Rue Alexandre Bègue, 97416 La Chaloupe Saint-Leu','CyberBase Saint-Leu',array(
    													'<h3>CyberBase Saint-Leu</h3>',
    													'<p>Plateforme de services</p>',
    													'<p>221 A Rue Alexandre Bègue</p>'
    													));
    		$this->oLayout->add('main',$oModuleGoogleMap->getMap());
    	}

    Dans la boucle foreach(), j'ai mis les 2 cas possibles :
    - par adresse
    - par coordonnées latitude, longitude

    Le problème est que ces marqueurs ne s'affichent pas.

    Cdt

  6. #6
    Candidat au Club
    PB affichage stable d'une map Google à partir du module intégrable (résolu)
    Bjr

    Après quelque retouches, cela marche maintenant. L'ordre des paramètres de la fonction est important

    module/default/main.php:

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    class module_default extends abstract_module{
     
    	public function before(){
    		$this->oLayout=new _layout('bootstrap');
    		$this->oLayout->addModule('menu','menu::index');
    	}
     
    	public function _googleMap(){
     
    		//instancier le module
    		$oModulelistDecheterie=new module_listDecheterie();
     
    		//si vous souhaitez indiquer au module integrable des informations sur le module parent
    		$oModulelistDecheterie->setRootLink('listDecheterie::list',array('oModuleGoogleMap'=>_root::getParam('oModuleGoogleMap')));
     
    		//recupere la vue du module
    		$oViewModule=$oModulelistDecheterie->_index();
     
    		//assigner la vue retournee a votre layout
    		$this->oLayout->add('main',$oViewModule);
     
     
    	$tListDecheterie=model_siteintervention::getInstance()->findAllDecheterie('DECHETERIE');
     
    		$oView=new _view('listDecheterie::list');
    		$oView->tListDecheterie=$tListDecheterie;
     
    		$oView->tJoinmodel_siteintervention=model_siteintervention::getInstance()->getSelect();
     
    		$oModuleGoogleMap=new module_googleMap();
    		$oModuleGoogleMap->setWidth(950);
    		$oModuleGoogleMap->setHeight(450);
    		$oModuleGoogleMap->setZoom(12);
     
    		$this->oLayout=new _layout('bootstrap');
    		$this->oLayout->addModule('menu','menu::index');
     
    		// Instancier le module GoogleMap
    		$this->oLayout->add('main',$oModuleGoogleMap->getMap());
     
    		// Ajouter les marqueurs des déchèteries
    		if($tListDecheterie ) {
     
    			foreach($tListDecheterie as $oListDecheterie) {
     
    				$oModuleGoogleMap->addPositionWithContent($oListDecheterie->adresse_site, $oListDecheterie->nom_site,array(
    								'<h3>'.$oListDecheterie->nom_site.'</h3>'));
     
    			}
    		}
     
    		$this->oLayout->add('main',$oModuleGoogleMap->getMap());
     
    	}

    Ca marche. Pour ceux que cela intéresse
    Merci à Imikado

    cdt

  7. #7
    Rédacteur

    J'avais écrit un tutorial pour utiliser dynamiquement le module google maps

    Ce tuto permettait de faire une gestion de contacts, ou chaque contact apparaissait sur la carte:
    http://imikado.developpez.com/tutori...ct-googleMaps/
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Nouveau Candidat au Club
    Bonjour

    Je ne sais pas si j'interviens dans le bon fil, mais je tente ma chance (et pardon si tel n'est pas le cas).

    J'ai réalisé une carte basée sur l'API Google Maps, qui s'affiche parfaitement... en local. Mais dès que je mets la page sur un serveur web, la carte se charge puis disparaît, avec un message d'erreur selon lequel je n'ai pas renseigné la clé API (qui, semble-t-il a été réinstaurée cet été). Je trouve partout la syntaxe pour insérer cette clé lorsdque l'appel de la carte se fait sour la forme :

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=<numero de la cle>"></script>

    Oui, mais voilà, dans mon cas l'appel se fait via des instruictions javascript :

    map = new google.maps.Map(document.getElementById("map"), options);

    Et là, pas moyen de trouver comment je peux insérer cette foutue clé, toutes mes tentatives ayant échoué jusqu'à présent. Si une bonne âme pouvait m'éclairer...

    Merci d'avance

  9. #9
    Rédacteur

    Si vous utilisez la dernière version du module Google Maps du mkframework, il y a une méthode qui sert à ça

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $oModuleGoogleMap=new module_googleMap();
    $oModuleGoogleMap->setKey('VOTRECLEGOOGLEMAP');


    http://mkframework.com/telechargerMo...googleMap.html
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

###raw>template_hook.ano_emploi###