当我将标记移到 map 顶部并移出 View (见下图)时,它会变得非常不透明,这使得标记几乎不可见。
这个错误只发生在 Safari 中,我真的不知道是什么导致了这个。
如果您仔细观察第二张图片,您可以看到标记。
var myMarker = new Array();
$(function () {
latitude = 59.3294;
longitude = 18.0686;
var mapOptions = {
center: new google.maps.LatLng(latitude, longitude),
zoom: 4,
disableDefaultUI: true,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}
}
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
var id = 1;
var image = {
url: 'http://i.imgur.com/4yjea7s.png',
// This marker is 20 pixels wide by 32 pixels tall.
size: new google.maps.Size(33, 42),
// The origin for this image is 0,0.
origin: new google.maps.Point(0, 0),
// The anchor for this image is the base of the flagpole at 0,32.
anchor: new google.maps.Point(16, 42)
};
myMarker[id] = new google.maps.Marker({
position: new google.maps.LatLng(57.721035,12.939819),
map: map,
animation: google.maps.Animation.DROP,
draggable: false,
icon: image
});
google.maps.event.addListener(myMarker[id], 'click', function() {
var image = {
url: 'http://i.imgur.com/1eHR1c3.png',
// This marker is 20 pixels wide by 32 pixels tall.
size: new google.maps.Size(108, 141),
// The origin for this image is 0,0.
origin: new google.maps.Point(0,0),
// The anchor for this image is the base of the flagpole at 0,32.
anchor: new google.maps.Point(54, 0)
};
myMarker[id].setDraggable(true);
myMarker[id].setIcon(image);
});
});
jsfiddle: http://jsfiddle.net/S5T9b/1/
http://jsfiddle.net/S5T9b/1/embedded/result/
重现错误的步骤:
- 点击 map 上的标记
- 将标记拖到 map div 的最顶部并放下。
标记现在应该几乎看不见了,但如果您仔细观察,它仍然存在。 您仍然可以再次点击它并移动它 - 然后它再次变得可见。
这是我的编程问题还是 Safari 中的谷歌地图错误?
最佳答案
我很确定这是 Google map 的错误。但是我通过使用这个解决方案让它工作:
你必须指定一个 zIndex
并添加
optimized: false
到每个 标记构造函数,例如。
var marker = new google.maps.Marker({
position: markerLatLng,
map: map,
icon: resultIcon,
optimized: false,
zIndex: 5
})
关于javascript - 谷歌地图标记在拖动后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402377/