google map API 分别获得Marker 拖动前后的坐标

我们知道,利用google map API可以监听marker的拖动时间,与拖动相关的事件一共有三个:dragstart, drag, dragend,分别在拖动之前,拖动过程中,以及拖动结束后相应事件,但是无论哪一种事件,都不可能同时获得marker拖动前和拖动后的坐标,有时候,我们又确实需要同时获得这两个坐标进行处理。我所用的方式就是充分利用Marker的属性,确切地说是marker的不变属性,也就是说拖动前和拖动后都不会改变的属性,通过查找google map API, 可以使用marker的title属性作为载体,来保存marker拖动之前的坐标。

代码如下:
//在地图上点击生成一个Marker
GEvent.addListener(map_f1,"click", function(overlay,latlng) {
if (overlay) {
// 忽略点击在信息窗口上的事件
return;
}
//定义一个newMarker
var newMarker = new GMarker(latlng, {draggable: true});
//点击newMarker时触发的事件
GEvent.addListener(newMarker, 'click',
function(){
newMarker.openInfoWindow(createInfoWindow(newMarker));
});
//将拖动之前的经纬度坐标放到newMarker的title属性
newMarker.title = newMarker.getLatLng().lat()+","+newMarker.getLatLng().lng();
map_f1.addOverlay(newMarker);
//监听newMarker的dragend事件
GEvent.addListener(newMarker,'dragend',function(latlng){
var title = newMarker.title;
var points = title.split(",");
var s_lat = points[0];//拖放前纬度
var s_lng = points[1]; //拖放后经度
var e_lat = latlng.lat();//拖放后纬度
var e_lng = latlng.lng();//拖放后经度})
});

{);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值