将谷歌地图的pegman放在标记下方



我有一个谷歌V3地图,它使用steetView和一些地图标记。黄色的街景小人坐在地图上的标记上。有没有办法改变z索引,使我的标记位于pegman之上(这样就可以在不需要放大的情况下轻松点击它们)?

如果有什么不清楚的地方,这里有一把小提琴。。。。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});

这迫使pegman坐在标记下方,但现在pegman不再可拖动,每次移动地图等时,pegman都会再次跳到标记上方。

要将pegman保持在标记下,您可以监视pov_changed事件,并在短延迟后重置z索引

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

在地图移动后,您还需要更改pegman的深度,这可以通过以下片段来完成

google.maps.event.addListener(map, 'idle', function() {
                google.maps.event.trigger(panorama, 'pov_changed');
    })

如果您希望能够拖动pegman,则必须首先通过切换按钮交换pegman的深度将其放置在标记上方,并向pov_changed事件处理程序添加一个异常,以防止切换按钮处于活动状态时pagman下降深度。

好吧,这可能有点古怪。。。(我希望我理解你在做什么)

1) 禁用街景控制2) 使用比现有标记更低的zIndex制作另一个控件。3) 使用伪街道视图标记的位置更新街道视图控件。

http://jsfiddle.net/z7Lp8/

您可以将标记的zIndex设置在google.maps.marker.MAX_zIndex上方,以便pegman保持在标记下方。MAX_ZINDEX是API将分配给标记的最大默认z索引。标记z索引仅在地图上所有标记禁用优化时才起作用。

从问题中分离出来说明: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
    });

相关内容

  • 没有找到相关文章

最新更新