删除Google Maps V3标记拖动动画

Removing the Google Maps V3 Marker drag animation?

本文关键字:拖动 动画 V3 Google Maps 删除      更新时间:2023-09-26

当我拖放一个标记时,它会稍微升高,并在它的下方出现一个倾斜的X来表示拖动位置。

有办法完全摆脱这个吗?我有自定义标记,想用不同的方式显示它们的拖动状态

可以将标记raiseOnDrag的属性设置为false

var marker = new google.maps.Marker({
  draggable: true,
  map: map,
  raiseOnDrag: false
});

然后你可以使用ScottE解决方案来创建自定义拖动效果

raiseOnDrag在当前API版本(3.17)中未被记录。取而代之的是crossOnDrag属性:

crossOnDrag: boolean -如果为false,则在拖动时禁用出现在标记下方的十字。

https://developers.google.com/maps/documentation/javascript/reference MarkerOptions


编辑(2016年9月):raiseOnDrag在3.25

中仍未记录

我不相信这是可能的。你可以改变dragstart/dragend的标记,但这不会改变下面显示的"x"。

下面是一个拖动时改变标记的例子: http://gmaps-samples-v3.googlecode.com/svn/trunk/draggable-markers/draggable-imagechange.html

当你看图片时,你会发现'x'不是png的一部分。

您还需要在拖放事件时切换回原始图像。

完整代码如下:

myArrow         = new google.maps.MarkerImage("defaultIcon.png"); 
myArrowDrag     = new google.maps.MarkerImage("draggingIcon.png"); 
myMarker = new google.maps.Marker({
    position    : new google.maps.LatLng(myLat, myLng),
    map         : map,
    icon        : myArrow,
    draggable   : true,
    raiseOnDrag : false
});
google.maps.event.addListener(myMarker, 'dragstart', function() {
    myMarker.setOptions({icon: myArrowDrag});
});
google.maps.event.addListener(myMarker, 'dragend', function() {
    myMarker.setOptions({icon: myArrow});
});