谷歌地图得到位置

时间:2012-12-05 13:24:06

标签: javascript google-maps-api-3

我正在使用谷歌地图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(边界);

1 个答案:

答案 0 :(得分:0)

听起来您正在使用地理编码器将标记放在地图上。地理编码器是异步的,在回调例程运行之前,您无法使用结果。听起来你试图在回调运行之前使用标记的位置(所以你从最后一次调用中得到了值)。