Bonjour,

j'ai une page web qui est construite dynamiquement en PHP. J'insers dans cette page web une map google en utilisant le code javascript ci-dessous :

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
 
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=mykey&sensor=false" type="text/javascript"></script>
<script type="text/javascript">
 
var MaCarte;
var geocoder = null;
var LatitudeCarteClick;
var LongitudeCarteClick;
function load() {
  if (GBrowserIsCompatible()) {
    MaCarte = new GMap2(document.getElementById('map'));
    MaCarte.setCenter(new GLatLng(47, 3), 5);
    MaCarte.addControl(new GLargeMapControl());
    MaCarte.addControl(new GMapTypeControl());
    MaCarte.addControl(new GOverviewMapControl());
    MaCarte.addControl(new GScaleControl());
    geocoder = new GClientGeocoder();
  }else{
    alert("D&eacute;sol&eacute;, mais votre navigateur n\'est pas compatible avec Google Maps");
  }
}
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(){MaCarte.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);
			   MaCarte.setCenter(new GLatLng(47, 3), 5);
			 } else {
			   MaCarte.clearOverlays();
			   var marker = new GMarker(point, {draggable: true});
			   GEvent.addListener(marker, 'dragstart', function() {
						MaCarte.closeInfoWindow();
					      });
 
			   GEvent.addListener(marker, 'dragend', function(point) {
						recentrerCarte();
					      });
			   MaCarte.addOverlay(marker);
			   MaCarte.setCenter(point, 15);
			 }
		       }
		       );
  }
}
 
function AddMarker(lat,lon) {
 
  var point = new GPoint(lat, lon);
  var newMarker = new GMarker(point);
  MaCarte.addOverlay(newMarker);
}
 
</script>
Je fais un include de ce code javascript dans le PHP pour construire la page.
Lorsqu'un utilisateur s'identifie sur mon site, je veux afficher des infos le concernant sur la carte construite au départ.
J'insère donc l'appel à la fonction AddMarker (latitude, longitude); dans ma page construite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<?php
print('<script type="text/javascript">');
        print('AddMarker('.$lat.','.$long.');');
print('</script>');
?>
Lorsque j'execute le code dans mon navigateur, j'ai le message suivant dans la console d'erreur : "MaCarte is Undefined".

Comment puis-je accéder à la variable MaCarte définie et initialisée lors de la première exécution du javascript ?

Je précise que je débute totalement en javascript.

Merci pour votre aide.

Floopi51