pourtant cette fonction marche dans le fichier php plus haut mais pas dans le script !?
LJ
pourtant cette fonction marche dans le fichier php plus haut mais pas dans le script !?
LJ
Je n'avais pas fait attention mais c'est la même erreur que celle en fin de code de ton post #11.
Tu as donc un problème d'intégration de ton PHP dans ta page.
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
a priori cette écriture résoud le problème de la fonction setQuery
mais rien ne s'affiche sur la map
Code : 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 <script type="text/javascript"> function initCarte() { <?php //appel tableau de données de la requête $bdd->setQuery( $query ); $tresult = array() ; $res = $bdd->loadObjectList(); foreach ( $tresult as $marker ) { $tResult[] = $marker->lat ; $tResult[] = $marker->lng ; $tResult[] = $marker->name ; } echo "var dataMarker=", json_encode( $tResult), ";\n"; ?> var oMap, oMarker, oInfo; var i, nb = dataMarker.length; // création de la carte oMap = new google.maps.Map( document.getElementById( 'div_carte'),{ 'center' : new google.maps.LatLng( 46.80, 1.70), 'zoom' : 6, 'mapTypeId' : google.maps.MapTypeId.ROADMAP }); // création infobulle oInfo = new google.maps.InfoWindow(); // création des markers dans une boucle for( i = 0; i < nb; i++){ oMarker = new google.maps.Marker({ 'position' : new google.maps.LatLng( dataMarker[i].lat, dataMarker[i].lng, 'map' : oMap, 'title' : dataMarker[i].name }); // événement clic sur le marker google.maps.event.addListener( oMarker, 'click', function( data){ // affichage position du marker oInfo.setContent( 'position :<br>' +data.latLng.toUrlValue(5)); oInfo.open( oMap, oMarker); }); } } // init lorsque la page est chargée google.maps.event.addDomListener(window, 'load', initCarte); </script>
ATTENTION si tu changes la façon de récupérer tes données de ta Base, il te faut changer la façon de les lire dans le javascript, là tu récupères un Array
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 foreach ( $tresult as $marker ) { $tResult[] = $marker->lat ; $tResult[] = $marker->lng ; $tResult[] = $marker->name ; }
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
effectivement maintenant mes données arrivent bien dans le script (je les vois dans le code source) sous la forme
mais ne s'affiche pas c'est cette partie d'affichage que je dois modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part var dataMarker=[["45.99618399602106","1.428955078125","Le bourg"],["45.169812807708205","1.451171875","Chambon"],["45.95581508086375","1.2015625834465027","Le Malpas"],["45.75242326188913","1.7303466796875","Escoubaniers"],["45.44494795612681","2.208740234375","Vergnolles"]];
Code : Sélectionner tout - Visualiser dans une fenêtre à part new google.maps.LatLng( dataMarker[i].[0].lat, dataMarker[i].[1].lng,
Tu n'en es pas loin
sans les points entre les crochets et sans la clé qui n'existe plus, c'est simplement un tableau de tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part new google.maps.LatLng( dataMarker[i][0], dataMarker[i][1],
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var dataMarker = [ ["45.99618399602106", "1.428955078125", "Le bourg"], ["45.169812807708205", "1.451171875", "Chambon"], ["45.95581508086375", "1.2015625834465027", "Le Malpas"], ["45.75242326188913", "1.7303466796875", "Escoubaniers"], ["45.44494795612681", "2.208740234375", "Vergnolles"] ];
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
a ouii je récupère les données sous cette forme après ma requête
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $result = array(); foreach ($data as $marker) { // si le tableau est unidimensionnel // Si tableau bidimensionnel décommenter ce bloc $result[] = array( $marker->lat, $marker->lng, $marker->name ); } $tResult = 'var tMarker=' . json_encode($result) .";\n" ;
j'avais essayé cette écriture grâce à ma lecture sur els tableaux array d'hier mais j'avais laissé le point effectivement cela marche maintenant
qu'elle fin d'année ...
je posterais un commentaire final avant résolu
Ne pas oublier le bouton
Bonne année!
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
voici donc l'intégrale de mon code qui je le rappelle pour la requête, est sur un site Joomla, la base du script est pris dans la FAQ API Google Maps de ce site
merci à No SMAUG de ce voyage attendu !
LJ
Code : 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
81
82
83
84
85
86
87
88
89
90
91 <?php defined('_JEXEC') or die('Restricted access'); $user = JFactory::getUser(); $userid = $user->id; $bdd = JFactory::getDBO(); $query = "SELECT name, lat, lng FROM #__batenergie_batenergieep WHERE author='$userid'"; $bdd->setQuery ( $query ); $data = $bdd->loadObjectList(); $result = array(); foreach ($data as $marker) { // si le tableau est unidimensionnel /*$result[] = $marker->lat ; $result[] = $marker->lng ; $result[] = $marker->name ; */ // Si tableau bidimensionnel décommenter ce bloc $result[] = array( $marker->lat, $marker->lng, $marker->name ); } $tResult = 'var tMarker=' . json_encode($result) .";\n" ; ?> <style type="text/css"> html, body { height : 100%; width:100%; margin : 0; padding : 0; } #div_main { margin : auto; width : auto; } #div_carte { margin : auto; width : 1000px; height : 300px; border : 1px solid #c0c0c0; } </style> <hr> <div align="left"> <h1>Implantation des postes</h1> </div> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=fr"></script> <script type="text/javascript"> function initCarte(){ <?php echo $tResult; ?> var oMap, oMarker, oInfo; var i, nb = tMarker.length; // création de la carte oMap = new google.maps.Map( document.getElementById( 'div_carte'),{ 'center' : new google.maps.LatLng( 46.80, 1.70), 'zoom' : 6, 'mapTypeId' : google.maps.MapTypeId.ROADMAP }); // création infobulle oInfo = new google.maps.InfoWindow(); // création des markers dans une boucle for( i = 0; i < nb; i++){ oMarker = new google.maps.Marker({ 'position' : new google.maps.LatLng( tMarker[i][0], tMarker[i][1]), 'map' : oMap, 'title' : tMarker[i][2] }); // événement clic sur le marker google.maps.event.addListener( oMarker, 'click', function( data){ // affichage position du marker oInfo.setContent( 'position :<br>' +data.latLng.toUrlValue(5)); oInfo.open( this.getMap(), this); }); } } // init lorsque la page est chargée google.maps.event.addDomListener(window, 'load', initCarte); </script> <div id="div_main"> <div id="div_carte"></div> </div> <br />
Partager