当我拖放一个标记时,它会稍微抬起,并在其下面出现一个倾斜的X,表示拖动位置。
有没有完全摆脱这个?我有自定义标记,并希望以不同的方式显示它们的拖动状态。
答案 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});
});