Plusieurs maps sur la même page
Résolu
admindunet
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
-
admindunet Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
admindunet Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Uncaught referenceerror: google is not defined
- Google maps satellite - Guide
- Google maps - Guide
- Comment supprimer une page sur word - Guide
- Maps - Accueil - Transports & Cartes
- Telecharger google maps pc - Télécharger - Téléchargement & Transfert
5 réponses
Bonjour,
Je suppose que tu as ce bout de code dans une boucle PHP
Et là.. tel que tu l'as écrit.. tu as plusieurs fois une fonction initmap .... que tu déclenches ensuite je ne sais où...
En gros,
Il faut sortir cette fonction de la boucle, et lui passer en paramètres les variables.
Un truc du genre
Je suppose que tu as ce bout de code dans une boucle PHP
Et là.. tel que tu l'as écrit.. tu as plusieurs fois une fonction initmap .... que tu déclenches ensuite je ne sais où...
En gros,
Il faut sortir cette fonction de la boucle, et lui passer en paramètres les variables.
Un truc du genre
// début de ta boucle .... // ... $x = $info['gps']; // info gps contient 43.38763011826848, 4.595781904523042 list($y, $h) = explode(', ', $x); if($i<5){ echo '<div id="map-'.$info['id'].'" style="height: 300px;"></div> <script> initMap("map-'.$info['id'].'",'.$y.','.$h.'); </script>'; } } // fin de ta boucle ?> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBqFjwo8LqJFblhHhxpnYr11k0SEE0zj2M&callback=initMap"> </script> <script> function initMap(id, y ,h){ var uluru = {lat: y, lng: h}; var map = new google.maps.Map(document.getElementById(id), { zoom: 13, center: uluru }); var marker = new google.maps.Marker({ position: uluru, map: map }); } </script>
Merci, effectivement ceci marche, les maps s'affichent, sauf que on peut manipuler uniquement la dernière, les autres seul la maps s'affiche avec l'endroit mais sans le marqueur et on ne peux pas naviger dessus

Pour info, j'ai du ajouter
dans la boucle car dans mon code $info['id'] change selon le $i (j'ai simplifié le code ici)

Pour info, j'ai du ajouter
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBqFjwo8LqJFblhHhxpnYr11k0SEE0zj2M&callback=initMap<?php echo $info['id'];?>">
</script>
dans la boucle car dans mon code $info['id'] change selon le $i (j'ai simplifié le code ici)
D'accord, voilà je viens de faire votre première solution, voici ce que donne le code source de la page une fois affichée :
le problème est que la carte ne s'affiche pas, et la console m'affiche :
Uncaught ReferenceError: initMap is not defined
Merci pour votre aide :)
<div id="map-6" style="height: 300px;"></div>
<script>initMap("map-6",43.38763011826848,4.595781904523042); </script>
<script>
function initMap(id, y ,h){
var uluru = {lat: y, lng: h};
var map = new google.maps.Map(document.getElementById(id), {
zoom: 13,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBqFjwo8LqJFblhHhxpnYr11k0SEE0zj2M&callback=initMap">
</script>
le problème est que la carte ne s'affiche pas, et la console m'affiche :
Uncaught ReferenceError: initMap is not defined
Merci pour votre aide :)
quand je place ma fonction initmap avant la boucle php ça m'affiche l'erreur :
Uncaught ReferenceError: google is not defined at initMap
Uncaught ReferenceError: google is not defined at initMap
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
effectivement, en mettant le script initmap tout en haut avec la function, la dernière map s'affiche et la pramière map ne s'affiche pas et affiche l'erreur :
Uncaught ReferenceError: google is not defined at initMap
et la ligne est :
var map = new google.maps.Map(document.getElementById(id), {
Uncaught ReferenceError: google is not defined at initMap
et la ligne est :
var map = new google.maps.Map(document.getElementById(id), {
<!DOCTYPE html> <html> <head> <title>TEST</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> </head> <body> <script defer src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBqFjwo8LqJFblhHhxpnYr11k0SEE0zj2M"></script> <script> function initMap(id, y ,h){ var uluru = {lat: y, lng: h}; var map = new google.maps.Map(document.getElementById(id), { zoom: 13, center: uluru }); var marker = new google.maps.Marker({ position: uluru, map: map }); } </script> <div id="map-6" style="height: 300px;"></div> <script> $(document).ready(function(){ initMap("map-6",43.38763011826848,4.595781904523042); }); </script> </body> </html>
Un truc du genre