2011-10-28 61 views
7

我使用OSM呈現地圖,並且對設置頁面元素的zIndex有一些嚴重問題。 JS的Openlayers zIndex標記和向量

部分看起來是這樣的:

var userRoute = new OpenLayers.Layer.Vector("KML", { 
    sphericalMercator : true, 
    styleMap: styleMap, 
    rendererOptions: { zIndexing: true } 
}); 

var markers = new OpenLayers.Layer.Markers("Markers", { 
    sphericalMercator : true, 
    rendererOptions: { zIndexing: true } 
}); 

markers.setZIndex(500); 
userRoute.setZIndex(200); 

現在在解析KML文件的第一個元素我設置

var startFlag = new OpenLayers.Icon('/start_flag_2.png', new OpenLayers.Size(23, 22)); 
markers.addMarker(new OpenLayers.Marker(latlon, startFlag)) 

也是一樣的最後ELEM。 :

var stopFlag = new OpenLayers.Icon('/stop_flag_2.png', new OpenLayers.Size(23, 22)); 
markers.addMarker(new OpenLayers.Marker(latlon, stopFlag)) 

設置zIndex被腳本忽略,任何想法爲什麼?

+1

如果有人intrested,你需要指定zIndex的後面添加圖層它工作得很好map map.addLayers([userRoute,markers]); markers.setZIndex(1001 \t); userRoute.setZIndex(1000); 它工作得很好:) – kamil

+0

偉大的,你找到了解決方案。 :-)將它作爲答案,並將其標記爲其他人的解決方案,以便輕鬆查看它已解決。 –

+0

我只是不能這樣做,因爲我不能回答自己的問題8小時;) – kamil

回答

18

如果有人是intrested,你需要指定zIndex的後面添加圖層繪製

map.addLayers([userRoute, markers]); 
markers.setZIndex(1001); 
userRoute.setZIndex(1000); 

和:)

+0

正如你所說的「你需要指定zIndex後添加地圖層」做的竅門!謝謝! – wondie