我正在使用谷歌地图api,当我试图获得标记位置时,我遇到了问题。 我有两个文本字段作为地址输入,我用标记显示结果。
当我想获得标记位置(通过getPosition()函数)时,对于使用新的google.maps.LatLngBounds(),标记位置在地图上是正确的,但是getPosition()函数给了我一个错误回答,仅在第二次搜索getPosition的地址时,更新第一次地址搜索。 它就像它有一个dealy,当我使用getPosition()时,位置还没有更新。
任何人都知道为什么?
感谢名单
这是我的代码的一部分。 如果我将使用JSON请求获取地址位置,它会更好吗?
function GetAddress(add,map,pointtype){
var country = 'france';
var address = add + ', ' + country;
geocoder = new google.maps.Geocoder();
if(pointtype == 0){
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
origmarker.setPosition(results[0].geometry.location) ;
origmarker.setTitle(add);
}
});
}
else{
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
desmarker.setPosition(results[0].geometry.location) ;
desmarker.setTitle(add);
}
});
}
}
var bounds = new google.maps.LatLngBounds();
bounds.extend(origmarker.getPosition()); bounds.extend(desmarker.getPosition());
map.fitBounds(边界);
答案 0 :(得分:0)
听起来您正在使用地理编码器将标记放在地图上。地理编码器是异步的,在回调例程运行之前,您无法使用结果。听起来你试图在回调运行之前使用标记的位置(所以你从最后一次调用中得到了值)。