删除Google Maps V3 Marker拖动动画?

时间:2011-07-13 15:49:07

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

当我拖放一个标记时,它会稍微抬起,并在其下面出现一个倾斜的X,表示拖动位置。

有没有完全摆脱这个?我有自定义标记,并希望以不同的方式显示它们的拖动状态。

4 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

raiseOnDrag在当前API版本(3.17)中未记录。而是有一个crossOnDrag属性:

crossOnDrag boolean - 如果为false,则在拖动时禁用标记下方显示的交叉。默认情况下,此选项为true。

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


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

中仍未记录

答案 2 :(得分:-1)

我不相信这是可能的。您可以更改dragstart / dragend上的标记,但这不会更改显示在下方的“x”。

以下是拖动时更改标记的示例:

http://gmaps-samples-v3.googlecode.com/svn/trunk/draggable-markers/draggable-imagechange.html

当您查看图像时,您会看到“x”不是png的一部分。

答案 3 :(得分:-1)

您还需要在dragend事件上重新切换原始图像。

完整的代码是这样的:

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});
});