在谷歌地图api v3(javascript)获取dragend标记的旧位置

时间:2012-12-11 12:58:47

标签: javascript google-maps-api-3 google-maps-markers

你好我在网上搜索但是我找不到答案,所以我需要你的宝贵帮助。有我的代码:

    for(var i=0; i<10;i++){         
        LatLon=new google.maps.LatLng(39.633336, 22.386423);
        Marker= new google.maps.Marker({position:LatLon,map:MyMap,draggable: true,title:'Mytitle'+i});
        MarkersArray[] = Marker; //keep markers in array because i want to delete them later!!!
        google.maps.event.addListener(Marker,"dragend",function(event){
            var markerNewPosition = this.getPosition();
            alert("old position: **here i want to show the old position** \nnew position: "+markerNewPosition);
        });
    }

直到现在,当我拖动标记时,我会提醒它的新位置的纬度和经度。但我想要更多的东西!我想提醒旧位置的纬度和经度。换句话说,我想在dragend处理程序中获取标记所在的前一个位置的坐标以及标记所在的新位置的坐标。任何人都知道如何做到这一点?任何想法都会欣赏。先感谢您!

1 个答案:

答案 0 :(得分:11)

您需要使用dragstart事件侦听器来获取它。您可以这样存储:

var GLOBAL = {};

...

google.maps.event.addListener(Marker,"dragstart",function(event){
    var markerOldPosition = this.getPosition();
    GLOBAL.startDragPosition = markerOldPosition;

});
google.maps.event.addListener(Marker,"dragend",function(event){
    var markerNewPosition = this.getPosition();
    alert("old position: " + GLOBAL.startDragPosition + " \nnew position: "+markerNewPosition);
    delete GLOBAL.startDragPosition;
});