2013-04-29 74 views
0

我有兩個多邊形:bigsmall - 小的一個包含在大的內部。Google Maps V3 API如何管理多邊形的Z-Index?

無論我執行:

//show big, then small... 
big.setMap(null); 
big.setMap(map); 
small.setMap(null); 
small.setMap(map); 

還是我執行:

//show small, then big... 
small.setMap(null); 
small.setMap(map); 
big.setMap(null); 
big.setMap(map); 

我總是在最上層的大多邊形結束。這意味着,我無法在小多邊形上接收鼠標事件,因爲它被大多邊形隱藏。

Google Maps V3 API如何管理多邊形的Z-Index?我想我將不得不在一個更大的多邊形上鑽一個洞,讓較小的一個穿過......但我寧願不要有一個更優雅的解決方案。

回答

4

似乎沒有zIndex的特定管理,類似於HTML文檔中的元素,當您使用多個多邊形而不設置zIndex時,定義多邊形的文檔中元素的順序將影響行爲稍後創建的多邊形將顯示在現有多邊形上方。

的實施的解決方案可以覆蓋這種行爲是設置多邊形的zIndex的屬性,給small更高zIndexbig

+0

我知道有比鑽孔更好的解決方案 - 謝謝! – 2013-04-29 19:44:42

1

是你的多邊形完全不透明,或者說他們有一定的透明度?

如果它們不透明,您可以使用Polygon對象上的zIndex,正如Dr. Molle指出的那樣。

如果它們部分透明,那麼可能不會達到所需的效果 - 除非您希望多邊形填充顏色被alpha混合。

如果您不希望填充顏色混合,那麼您確實需要在較大的多邊形中切出一個孔。不過,這真的很簡單。您只需要在較大的多邊形上添加第二個環,並將其與較小的多邊形的座標相同,但座標的順序相反。您可以複製數組並將其複製爲:

var reversed = [].concat(array).reverse(); 

下面是polygon with a hole in it的示例。

+0

感謝您的幫助。多邊形確實是半透明的,但我現在可以和alpha混合效果一起生活。謝謝你的幫助! – 2013-04-29 19:48:52

相關問題