Bonjour,

je travaille sur une map google et je voudrais pouvoir ajouter des markers sur la carte suite à un clique sur un bouton.

J'utilise le code ci-dessous et quand je clique sur le bouton , rien ne se passe.....
Je précise : la map MonPlan est chargée au lancement du site web sur ma page.
L'utilisateur se connecte et il peut ensuite en cliquant sur un bouton afficher des infos qui sont liées à son identifiant.

Voici le code :

1) chargement initial + definition de la fonction d'ajout des markers

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
 
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=maclef&sensor=false" type="text/javascript"></script>
 
<script type="text/javascript">
//<![CDATA[
 
var MonPlan;
var latlong_tab = [];
 
var geocoder = null;
var LatitudeCarteClick;
var LongitudeCarteClick;
 
function loadMaCarte() {
  if (GBrowserIsCompatible()) {
    MonPlan = new GMap2(document.getElementById('MonPlan'));
    MonPlan.setCenter(new GLatLng(47, 3), 5);
    MonPlan.addControl(new GLargeMapControl());
    MonPlan.addControl(new GMapTypeControl());
    MonPlan.addControl(new GOverviewMapControl());
    MonPlan.addControl(new GScaleControl());
    window.setTimeout(SeeMarkers, 0);
 
    geocoder = new GClientGeocoder();
  }else{
    alert("D&eacute;sol&eacute;, mais votre navigateur n\'est pas compatible avec Google Maps");
  }
  return MonPlan;
}
function dec2dms(l) {
  d = Math.floor(l);
  p = (l - d) * 60;
  m = Math.floor(p);
  s = Math.round((p - m) * 60);
  return d+"° "+m+"'' "+s+"'";
}
 
function recentrerCarte(){
  window.setTimeout(function(){MonPlan.panTo(new GLatLng(LatitudeCarteClick, LongitudeCarteClick));}, 1000);
}
 
function AfficherAdresse(addresse) {
  if (geocoder) {
    geocoder.getLatLng(addresse,
		       function(point) {
			 if (!point) {
			   alert('Impossible de geolocaliser cette adresse' + addresse);
			   MonPlan.setCenter(new GLatLng(47, 3), 5);
			 } else {
			   MonPlan.clearOverlays();
			   var marker = new GMarker(point, {draggable: true});
			   GEvent.addListener(marker, 'dragstart', function() {
						MonPlan.closeInfoWindow();
					      });
 
			   GEvent.addListener(marker, 'dragend', function(point) {
						recentrerCarte();
					      });
			   MonPlan.addOverlay(marker);
			   MonPlan.setCenter(point, 15);
			 }
		       }
		       );
  }
}
 
function SeeMarkers(latlong_tab) {
 
  MonPlan.clearOverlays();
  for (var i in latlong_tab) {
 
    var latitude = latlong_tab[i].lat;
    var longitude = latlong_tab[i].long;
    var point = new GLatLng(latitude,longitude);
    var marker = new GMarker(point);
 
    MonPlan.addOverlay(marker);
 
  }
}
 
//]]>
</script>

2 -Le code pour insérer les markers : (ce code est généré par PHP avec des données récupérées dans une BDD.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<script type="text/javascript" >
var tab_coord = new Array();
var mesCoord = {    lat:0,    long:0 };
mesCoord.lat=45.43;
mesCoord.long=5.33;
tab_coord[0]= mesCoord;
var mesCoord = {    lat:0,    long:0 };
mesCoord.lat=45.53;
mesCoord.long=5.53;
tab_coord[1]= mesCoord;
</script>
 
<input type="button" onclick="SeeMarkers(tab_coord)" value="display all markers" />
Merci pour vos idées

Floopi