如何将标记的新位置传递到函数中



在休耕代码中,我想将拖动的标记LatLng传递到函数中以获取地址,但它不起作用

public LastLat : any; 
public LastLng : any; 

...

lastLatLng(marker){
  google.maps.event.addListener(marker, 'dragend', function() { 
  this.LastLat= marker.position.lat();
  this.LastLng= marker.position.lng();
  });
console.log(this.LastLat,this.LastLng);
      this.Getaddress(this.LastLat,this.LastLng);
}
Getaddress(LastLat, LastLng){
this.http.get('http://nominatim.openstreetmap.org/reverse?format=json&lat='+LastLat+ '&lon='+LastLng + '&zoom=18&addressdetails=1')
        .map(res => res.json())
        .subscribe(data => {
        this.data = data.display_name;
        console.log(this.data);
});
}

运行时,它说LastLat,LastLng未定义。获取地址失败,因为this.LastLat,this.LastLng没有数据也控制台.log。

您应该将对 GetAddress 的调用移动到事件侦听器中:

lastLatLng(marker){
    google.maps.event.addListener(marker, 'dragend', () => { 
        this.LastLat= marker.position.lat();
        this.LastLng= marker.position.lng();
        console.log(this.LastLat,this.LastLng);
        this.Getaddress(this.LastLat,this.LastLng);
    });
}

相关内容

  • 没有找到相关文章

最新更新