Bonjour,

je dois mettre en place un petit script qui affichera une liste de marqueurs (villes) avec zoom automatique sur la zone (utilisation de fitBounds et LatLngBounds).
sur autre application j'ai déjà créé un tableau avec les coordonnées gps dedans et ça fonctionne bien.

mais là, je n'ai pas les coordonnées mais j'ai le noms des villes.
donc, je comptais géocoder chaque nom de ville pour récupérer les coordonnées gps et les insérer dans un tableau que je parcours par la suite. sauf que je n'y arrive pas et mon tableau est vide (sauf l'insertion manuelle).

voici le bout de script JS :
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
 
var tableauLieux = []; // Nous crééons 1 tableau qui va indiquer les adresses et autres renseignements à afficher sur la carte
var geocoder;
 
function ckeck_adress(adresse) {
	geocoder = new google.maps.Geocoder();
 
	geocoder.geocode({ 'address': adresse}, function(results, status) {
 
		// Si l'adresse a pu être géolocalisée 
		if(status == google.maps.GeocoderStatus.OK)
		{
			// Récupération de sa latitude et de sa longitude
			Lat = results[0].geometry.location.lat();
			Long = results[0].geometry.location.lng();
 
			tableauLieux.push( new google.maps.LatLng(Lat, Long));
			//tableauLieux.push(results[0].geometry.location);
 
		}
		else
		{
			alert("Le géocodage n\'a pu etre effectue pour la raison suivante: " + status);
		}
	});
}
 
function test() {
	// insertion d'une commune en manuel (paris)
	tableauLieux.push(new google.maps.LatLng(48.8566667, 2.3509871));
 
	<?php
        // on recupère les 3 1ères communes pour le test
        for($i=0; $i < 3; $i++)
        {
        ?>
		ckeck_adress("<?php echo addslashes($tab_com[$i]['nom_com']).", ".$DPT; ?>");
	<?php
        }
        ?>
 
 
var optionsCarte = {
	mapTypeId: google.maps.MapTypeId.ROADMAP
};
maCarte = new google.maps.Map(document.getElementById("map"), optionsCarte);
bounds = new google.maps.LatLngBounds();
//alert(tableauLieux.length);
for (var i = 0; i < tableauLieux.length; i++)
{
	var Lieu = tableauLieux[i];
 
	bounds.extend(Lieu);
 
	var marqueurLieu = new google.maps.Marker({
		position: Lieu,
		map: maCarte,
		title: ""
	});
}
maCarte.fitBounds(bounds);
}
google.maps.event.addDomListener(window, 'load', test);
Merci pour l'aide.