1

我有一個使用steetView和一些地圖標記的Google V3地圖。 小黃色streetView pegman坐在地圖上標記的頂部。 有沒有辦法改變z-index,這樣我的標記將會在pegman 之上(這樣它們就可以簡單地點擊而不必放大)?將谷歌地圖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}); 

這迫使街景小人來坐在標記下方,但現在不再可以拖拉人,每次地圖移動等等,佩格曼再次跳過標記。

回答

1

要保持在你的標記街景小人,你可以看的pov_changed事件,並在短暫的延遲

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

您還需要改變的深度復位後的z-index街景小人後的地圖移動,可以用下面的代碼片段

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

如果你希望能夠拖動衣夾人來完成,你必須先通過切換按鈕交換pegman的深度並將其排除在標記之上,並向pov_changed事件處理程序添加一個例外,防止pagman在切換按鈕處於活動狀態時放下深度。

0

好吧,這可能有點哈克......(我希望我明白你在做什麼)

1)禁止街景控制 2)使另一個控制比標記你一個較低的zIndex的有。 3)用街道視圖標記的位置更新街道視圖控件。

http://jsfiddle.net/z7Lp8/

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