我一直在拼凑各种代码来自互联网(包括StackOverflow),我有一个工作地图(几乎)哪些地理编码从数组中的代码和创建infowindows每一个。谷歌地图API - 多个信息窗口和自动居中
两个问题:
1)我的信息窗口,它应该从另一个数组的文字,总是使用最后一个数组值
2)我不能让地图自动居中。我使用了一些在其他情况下可以使用的代码,但它不在我的代码中。
的代码是相当不言自明:
var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map'), {
//zoom: 10,
//center: new google.maps.LatLng(-33.92, 151.25),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var postcodes = [
"EH14 1PR",
"KY7 4TP",
"IV6 7UP"
];
var descriptions = [
"Slateford",
"Cortachy",
"Marybank"
];
var markersArray = [];
var infowindow = new google.maps.InfoWindow();
var marker, i, address, description;
for(var i = 0; i < postcodes.length; i++) {
address = postcodes[i];
description = descriptions[i];
geocoder.geocode(
{
'address': address,
'region' : 'uk'
},
function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map
});
markersArray[i] = marker;
console.log(markersArray[i]);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(description);
infowindow.open(map, marker);
}
})(marker, i));
} else {
alert("Geocode was not successful for the following reason: " + status);
return false;
}
}
);
var bounds = new google.maps.LatLngBounds();
$.each(markersArray, function (index, marker) {
bounds.extend(marker.position);
});
map.fitBounds(bounds);
console.log(bounds);
}
有什么想法?这个问题似乎与地理编码功能中的计数器i的值有关。
任何帮助非常感谢!
谢谢:)我通过将各个部分(循环,地理编码,附加事件)提取出来分开管理,但我没有足够的代表在8小时之前回答我自己的问题!我会尝试你的解决方案进行界限计算,因为我无法完成这项工作。谢谢! – melat0nin 2012-01-04 22:40:52