2013-05-30 56 views
8

我有兩個geoJson圖層被加載 - 兩個圖層都是用於測試目的的相同數據,但是從兩個不同的json文件中繪製。當我在圖層控制器中打開和關閉圖層時,圖層的繪製順序會發生變化。打開/關閉圖層時,圖層順序發生變化

任何想法爲什麼會發生這種情況?

我已經把我的代碼放到一個的jsfiddle:http://jsfiddle.net/lprashad/ph5y9/10/和JS低於:

//styling for watersheds_copy 
var Orange = { 
    "color": "#ff7800", 
     "weight": 5, 
     "opacity": 0.65 
}; 

var Water_Orange = L.geoJson(watersheds_copy, { 
    style: Orange 
}); 

Water_Orange.addData(watersheds_copy); 

//these are blue 
var Water_blue = L.geoJson(watersheds, {}); 
Water_blue.addData(watersheds); 

//This sets the inital order - last in layer list being on top. Except minimal - tile layer is always on bottom 
var map = L.map('map', { 
    center: [41.609, -74.028], 
    zoom: 8, 
    layers: [minimal, Water_Orange, Water_blue] 
}); 

var baseLayers = { 
    "Minimal": minimal, 
     "Night View": midnight 
}; 

//This controls the order in the layer switcher. This does not change draw order 
var overlays = { 
    "Water_Orange": Water_Orange, 
     "Water_blue": Water_blue 
}; 
L.control.layers(baseLayers, overlays).addTo(map); 

LP

+0

我在你的jsfiddle上看不到任何東西。 –

+0

您的JSFiddle不起作用。但是,使用圖層控件打開/關閉圖層時,圖層不應更改順序。請參閱API中的L.Control.Layers部分中的'autoZIndex'選項:http://leafletjs.com/reference.html#control-layers。有沒有機會改變這個控制之外的圖層? –

+0

我修復了JSFiddle:http://jsfiddle.net/lprashad/ph5y9/,謝謝。我也嘗試將autoZindex設置爲true,但這沒有幫助。如果關閉兩個分水嶺圖層,然後打開藍色圖層,然後打開圖層控制中的橙色圖層 - 您將看到圖層以與地圖初始化時不同的繪製順序結束。 – Lee

回答

0

這不是具體到L.GeoJson層。據我所知,圖層控制的所有Leaflet層都是如此。開啓的最後一層僅位於最上面。我不認爲這是一個錯誤。這是可預測的行爲,我使用和依賴於當我設計地圖與圖層控制...

+0

我想用戶在點擊多邊形底部的點時會發現非常混亂。用戶預計列表頂部的圖層(如GIS桌面軟件產品)。 – jbchurchill

1

至少在0.7.2,我不得不使用bringToFront回調map.on('overlayadd')autoZIndex: false在我的情況下也沒有工作。 A comment on this issue可能會解釋原因。

2

在尋找我偶然發現這個網站,顯示了一些傳單代碼: http://ruby-doc.org/gems/docs/l/leaflet-js-0.7.0.3/lib/leaflet/src/control/Control_Layers_js.html

在這裏面我發現了這個條件autoZIndex的應用:

if (this.options.autoZIndex && layer.setZIndex) { 
      this._lastZIndex++; 
      layer.setZIndex(this._lastZIndex); 
    } 

TileLayer是唯一的層型它有一個setZIndex函數,所以顯然autoZIndex只能在那裏工作。

我不確定哪個更讓我煩惱。這個令人難以置信的限制或者Leafet文檔沒有提到的事實。