IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

MkFramework Discussion :

PB affichage stable d'une map Google à partir du module intégrable proposé


Sujet :

MkFramework

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 4
    Points
    4
    Par défaut PB affichage stable d'une map Google à partir du module intégrable proposé
    Bjr à toi Imikado (et merci pour ta réponse)

    Comme demandé, je reposte sur le lien que tu m'as indiqué.

    Je suis depuis quelques mois un ardent utilisateur du framework MK. Celui-ci me convient bien et j'en remercie le concepteur (imikado) pour cette initiative.
    Je vous remonte un petit probleme d'intération de module googleMap sur mon projet.

    J'ai suivi les étapes (simples de premier abord) d'intallation du module inétgrable <gogolemap> comme indiqué dans le tuto :
    - téléchargement + installation dans <mon_projet>/module/gogolemap ...
    - rajout du code ... dans le <main.php> de mon module <default> à la fin de l'action <_index()>
    - rajout dans le headeur de la vue <index.php> du script (<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>)

    Jusqu'à la, pas de PB.

    Au lancement, il affiche bien la map dans la poarit <main> mais 2secondes après il me retourne le message :
    petit probleme... une erreur s'est produite Google maps ne s'est pas chargé correctement sur cette page. voir le PB sur la console

    Je visualise sur la console JS les messages suivants :
    SyntaxError: unterminated string literal [En savoir plus]script_leaflet.js:8:15
    "Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error"js:34:391
    "Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys"util.js:206:33
    "Google Maps API warning: SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required"[/B][/B]

    N'étant pas un spécialiste de JS, je vous sollicite afin de comprendre le chargement de la map dysfonctionne.
    Merci par avances pour les pistes que vous pourriez m'indiquer


    En complément, j'ai testé l'implémentation d'une carte sans passer par le module intégrable,c'est à dire directement sur le html (action index du module défault) en plaçant le script js dans un fichier public/js/googlemap.js.
    J'ai le même résultat ???

    Cdt

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 4
    Points
    4
    Par défaut 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
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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:

    Nom : screenshotGoogleAPI.jpg
Affichages : 310
Taille : 79,6 Ko

    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
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 4
    Points
    4
    Par défaut 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
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 4
    Points
    4
    Par défaut 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
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    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
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    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/telechargerModule_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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage simple d'une maps google v2
    Par profecie dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/11/2014, 12h19
  2. [Google Maps] Créer une map Google avec plusieurs marqueurs
    Par Prodiguy dans le forum APIs Google
    Réponses: 1
    Dernier message: 03/05/2013, 18h21
  3. [Google Maps] Réaliser une page web avec une map google
    Par botch_nor dans le forum APIs Google
    Réponses: 14
    Dernier message: 20/10/2012, 14h48
  4. [WRS] Pb affichage rapport (lié à une MAP) sur Portail SAS
    Par Isa44 dans le forum Outils BI
    Réponses: 2
    Dernier message: 04/08/2011, 20h26
  5. [irrlicht] creer une map a partir de donnee x y z
    Par Husqvarna dans le forum Irrlicht
    Réponses: 5
    Dernier message: 09/03/2006, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo