【问题标题】:get old position of dragend marker in google maps api v3 (javascript)在谷歌地图 api v3 (javascript) 中获取 dragend 标记的旧位置
【发布时间】:2012-12-11 12:58:46
【问题描述】:

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

    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 处理程序中获取标记所在位置的坐标和标记所在的新位置的坐标。有人知道怎么做吗?任何想法将不胜感激。先感谢您!

【问题讨论】:

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


    【解决方案1】:

    您需要使用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;
    });
    

    【讨论】:

    • 非常感谢@Joseph,您的回答正是我想要的。但我是新来的,因为我的声誉很低,我不能投票给你:(!
    • 不客气。即使您不能投票,您也应该能够接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2012-02-24
    • 2012-11-26
    • 2019-09-23
    • 2017-12-03
    • 2014-01-09
    相关资源
    最近更新 更多