2012-06-04 44 views
8

我有一個帶有多個標記的圖層,圖標相當大,因此它們重疊。通過地圖側面的列表,用戶可以選擇一個標記,地圖將平移(放大)。但它仍然會落後於其他製造商。 我如何獲得個人製造商Z指數並設置它?我會有用得到最高使用的Z-索引,只需添加一個。 (另一種解決方案是將標記的總數添加到z-索引)在openlayers中更改標記的z-index

標記(或功能)位於myLib.features數組中。控制檯不顯示任何z-index類型的函數。

我找不到合適的示例或api函數。

編輯:

我發現這個例子:http://dev.openlayers.org/examples/ordering.html 我真的不明白。不知何故,創建的特徵通過某種符號器獲取圖層給出的下一個Z-index。我不知道如何將這種靜態排序變成動態排序。

回答

2

試試這個:

首先,確保你使用的是OpenLayers.Layer.Vector層,而不是一個OpenLayers.Layer.Markers層。顯然,標記圖層是舊消息,所有新的開發都是在矢量圖層中完成的。它有更多的功能。 (我自己浪費了一大堆時間,Markers層)。

然後,每個標記都需要是OpenLayers.Feature.Vector對象。構造函數有三個參數,其中第三個參數稱爲樣式。樣式是您設置圖像屬性,背景陰影,鼠標懸停文本和z-index(其屬性名稱爲「graphicZIndex」)的位置。我想這就是你要找的。

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Feature/Vector-js.html#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style

添加您的 「標誌」(這是Vector公司)與addFeatures功能的載體層。而忽略「選項」的說法。

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Layer/Vector-js.html#OpenLayers.Layer.Vector.addFeatures

我發現,例如頁面過了,我感到十分困惑過。它在Vector層的構造函數中設置所有標記的樣式(如果標記樣式被省略,則使用默認值)而不是標記的構造函數。我認爲在標記構造函數中設置標記樣式更有意義。

要實時更改樣式,請選取一個名爲「marker」的OpenLayers.Feature.Vector標記並執行此操作。讓我們稱之爲矢量圖層「層」。

marker.style.graphicZIndex = 13; 
layer.redraw(); 
+0

這並沒有工作,但這確實https://gis.stackexchange.com/a/80574/8280 –