我正在使用 google.maps javascript API v3。我需要使用“点击”监听器将一组公民地址翻译成谷歌地图上的标记。当用户单击地图中的标记时,我希望打开另一个窗口,其中包含与该地址相关的 url(另一个选项卡是理想的)。
我无法保持地址和 url 之间的关系,因为我使用 javascript Closure 和谷歌方法 geocode()。
我有一组地址,例如
var addresses = [ '123 street street', '124 street street' ];
var urls = [ 'www.example.com/1', 'www.example.com/2' ];
然后我使用 API 进行地理编码并在地图上创建标记
for (var i = 0; i<addresses.length; i++)
{
var address = addresses[i];
var url = urls[i];
geocoder.geocode(
{ 'address' : address },
function(result, status) {
var x = url // url == ""
var marker = new google.maps.Marker({
position: result[0].geometry.location,
map: map,
title:"Test"
});
google.maps.event.addListener(marker, 'click', function(event){
alert(url);
window.open(url);
},false);
}
}
在匿名函数内部,我该如何使用var url
?