我想要做的是在地理编码器完成解析到latlng时添加一个标记......这是我的代码:
function parseLocation() {
var user1Location = "Mechelen, Belgium";
var geocoder = new google.maps.Geocoder();
//convert location into longitude and latitude
geocoder.geocode({
address: user1Location
}, function (locResult) {
lat1 = locResult[0].geometry.location.lat();
lng1 = locResult[0].geometry.location.lng();
if (status == google.maps.GeocoderStatus.OK) {
$('#map_canvas').bind('init', function () {
$('#map_canvas').gmap('addMarker', {
'position': lat1 + ',' + lng1
}).click(function () {
$('#map_canvas').gmap('openInfoWindow', {
'content': lat1 + ',' + lng1
}, this);
});
});
}
});
}
当我在init函数中警告变量时,它们是未定义的,我知道这个地理编码器是异步的,但我等待状态正常......我知道我做错了什么?
答案 0 :(得分:2)
试试吧。 Geocoder是异步但多次调用回调函数。
geocoder.geocode({"address":user1Location}, function(locResult, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat1 = locResult[0].geometry.location.lat();
lng1 = locResult[0].geometry.location.lng();
}
});
可以使用相同的代码处理链接。