这是链接:http ://alchemist3d.com/maptest.html
我也在循环中使用地理编码器来获取地址数组的坐标,这里是代码:
function initialize() {
var list = [
{location:"residencial punta del sol casa 6 temixco Morelos Mexico",body : " 1", title : "m 1"},
{location:"prol. harris num. 23 ampl. bugambilias jiutepec Morelos Mexico",body : "ampl. bugambilias 2", title : "f 2"},
{location:"Gladiola Satelite Cuernavaca Morelos Mexico",body:"Montes de Oca"}
];
var latlng = new google.maps.LatLng(18.92009,-99.20611);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//map.fitBounds(getBounds());
codeLocations(list, map);
}
function codeLocations(list, map) {
for (var i = 0; i < list.length; i++) {
//console.log("Looping " + list[i].location);
var geocoder = new google.maps.Geocoder();
var geoOptions = {
address: list[i].location,
bounds: getBounds(),
region: "NO"
};
geocoder.geocode(geoOptions, createGeocodeCallback(list[i], map));
}
}
function createGeocodeCallback(item, map) {
//console.log("Generating geocode callback for " + item.location);
return function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//console.log("Geocoding " + item.location + " OK");
addMarker(map, item, results[0].geometry.location);
} else {
//console.log("Geocode failed " + status);
}
}
}
function addMarker(map, item, location) {
//console.log("Setting marker for " + item.location + " (location: " + location + ")");
var marker = new google.maps.Marker({ map : map, position : location});
marker.setTitle(item.title);
var infowindow = new google.maps.InfoWindow( {
content : item.body,
size : new google.maps.Size(100, 300)
});
new google.maps.event.addListener(marker, "click", function() {
infowindow.open(map, marker);
});
}
function getBounds() {
var myOptions = {
zoom: 23,
center: new google.maps.LatLng(-33.9, 151.2),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var southwest = new google.maps.LatLng(17.920,-100.206);
var northeast =new google.maps.LatLng(19.920,-104.206);
return new google.maps.LatLngBounds(southwest, northeast);
}