【问题标题】:How get marker position before dragging?如何在拖动之前获取标记位置?
【发布时间】:2013-02-17 15:04:23
【问题描述】:

在 Google Maps API v2 中,我想在拖动标记之前存储以前的位置,但是,当我开始拖动标记时,它总是会跳转到某个较高的位置,所以在回调 onMarkerDragStart 中,我不能获得最后一个位置。

这是一个错误,还是可以解决问题?

【问题讨论】:

    标签: android google-maps google-maps-markers


    【解决方案1】:

    标记“跳跃”的事实是因为否则您无法看到标记,因为手指在它上面。 为了获得标记位置,您应该在开始拖动之前保存它。文档很清楚:

    当标记开始被拖动时调用。可以通过 getPosition() 访问标记的位置;此位置可能与开始拖动之前的位置不同,因为标记在触摸点上方弹出。

    所以想法是保持位置“缓存”并在拖动开始时从这个缓存的变量中获取它们。

    【讨论】:

    • 问题是我在地图内放置了 100 个标记。理想情况下,我不想缓存它。
    • 我明白了,不幸的是没有方法,但无论如何,你只缓存位置,而不是整个标记...对不起,不幸的是,没有可用的 API...
    【解决方案2】:

    一个可以解决你问题的例子

    function makeMarker(iPos) {
        var marker = new google.maps.Marker({
            position: iPos,
            draggable: true,
            map: map,
            zIndex: 1001 
        });
        google.maps.event.addListener(marker, 'dragstart', function() {
            iPos = marker.getPosition();
        });         
        google.maps.event.addListener(marker, 'dragend', function(event) {    
            console.log("Position after dragging: ", event.latLng.toUrlValue(6));
            console.log("Position before dragging: ", iPos.toUrlValue(6));
        });     
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-07
      • 2018-06-01
      • 2017-09-28
      • 2017-09-16
      • 2017-08-02
      • 2011-12-24
      • 1970-01-01
      • 2019-07-26
      相关资源
      最近更新 更多