我正在使用 Google maps api,但在尝试获取标记位置时遇到了问题。
我有两个文本字段作为地址输入,并用标记显示结果。
当我想获取标记position(by getPosition() function)
时,使用 newgoogle.maps.LatLngBounds()
时,标记在地图上的位置是正确的,但是该getPosition()
功能给了我一个错误的答案,只有在我第二次搜索地址时getPosition
,才会为第一次地址搜索更新.
就像它有一个交易,当我使用时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(bounds);