我有一个使用steetView和一些地图标记的Google V3地图。 小黄色街景街景小人坐在地图上的标记。 有没有办法改变z指数,以便我的标记将高于街景小人 (这样可以轻松点击它们而不必放大)?
如果有什么不清楚,这里有一个小提琴.... http://jsfiddle.net/spiderplant0/BRkCA/
经过一些实验,我想出了这个......
$("#map_canvas img[src*=cb_scout]").parent("div").css({'zIndex': -200});
$($("#map_canvas img[src*=cb_scout]")[1]).parent("div").parent("div").css({'zIndex': -200});
这迫使街景小人坐在标记下面,但现在街景小人不再可以拖动,每次地图移动等,街景小人再次跳过标记。
答案 0 :(得分:2)
要将街景小人保持在你的标记下,你可以观察pov_changed事件并在短暂延迟后重置z-index
$google.maps.event.addListener(panorama, 'pov_changed', function() {
var func=function(){
$("#map_canvas img[src*=cb_scout]").parent("div").css({'zIndex': -200});
}
setTimeout(func,1000);
}
});
您还需要在地图移动后更改街景小人的深度,这可以通过以下代码段完成
google.maps.event.addListener(map, 'idle', function() {
google.maps.event.trigger(panorama, 'pov_changed');
})
如果你想能够拖动街景小人,你必须首先把它放在标记之上,方法是用一个切换按钮交换街景小人的深度,并在pov_changed事件处理程序中添加一个例外,防止pagman在切换按钮时掉落深度很活跃。
答案 1 :(得分:0)
好吧,这可能有点笨拙......(我希望我明白你在做什么)
1)禁用街景控制 2)使用比您拥有的标记更低的zIndex制作另一个控件。 3)使用假街景标记的位置更新街景控制。
答案 2 :(得分:0)
您可以在google.maps.Marker.MAX_ZINDEX上方设置标记的zIndex,以便街景小人保持在标记下方。 MAX_ZINDEX是API将为标记分配的最大默认z-index。标记z索引仅在地图上所有标记关闭优化时才起作用。
Forked fiddle from question to illustrate: http://jsfiddle.net/brendaz/t4v8nhoq/
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(54.975, -2.020),
map: map,
zIndex: google.maps.Marker.MAX_ZINDEX + 1,
optimized: false
});