在Google Maps API v2中,我想在拖动标记之前存储以前的位置,但是,当我开始拖动标记时,它总会跳到某个较高位置,所以在回调onMarkerDragStart
中,我可以得到最后的位置。
这是一个错误,还是可以解决问题?
答案 0 :(得分:2)
标记“Jumps”的事实是因为否则由于手指指针而无法看到标记。 为了获得标记位置,您应该在开始拖动之前保存它。文档很清楚:
标记开始拖动时调用。可以通过getPosition()访问标记的位置;此位置可能与拖动开始前的位置不同,因为标记会在触摸点上方弹出。
所以我们的想法是保持位置“缓存”并在拖动开始时从缓存变量中获取它们。
答案 1 :(得分:0)
可以解决您问题的示例
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));
});
}