0
有沒有辦法,如何使用傳單z-索引多邊形時下?當地圖啓動時,我沒問題,但是當向現有地圖添加新多邊形時,我需要根據新地圖的面積將新多邊形分類到現有多邊形,因此較大的多邊形不會與小多邊形重疊。我發現這個解決方案:傳單多邊形排序
但它veeeeery慢,當我的地圖包含的功能,更大的量。任何想法?
有沒有辦法,如何使用傳單z-索引多邊形時下?當地圖啓動時,我沒問題,但是當向現有地圖添加新多邊形時,我需要根據新地圖的面積將新多邊形分類到現有多邊形,因此較大的多邊形不會與小多邊形重疊。我發現這個解決方案:傳單多邊形排序
但它veeeeery慢,當我的地圖包含的功能,更大的量。任何想法?
我不知道這個答案的表演的想法,但是你可以試試看:
GeoJSON Layer Order In Leaflet 0.7.5
主要代碼:
// To be called after adding a geoJsonLayer to the map.
function assignZindex(geoJsonLayer) {
geoJsonLayer.eachLayer(function (layer) {
layer._container.zIndex = layer.options.zIndex;
});
}
// To be called after assignZindex().
function reOrderVectorLayers() {
var root = map._pathRoot,
child = root.firstChild,
next;
while (child) {
next = child.nextSibling;
if (!next) {
break;
}
if (next.zIndex < child.zIndex) {
root.insertBefore(next, child);
if (next === root.firstChild) {
continue;
}
child = next.previousSibling;
continue;
}
child = next;
}
}
它假定zIndex
屬性是每個矢量(多邊形)圖層的options
中定義的編號。
正如在該問題的評論中所述,如果您使用Leaflet 1.x,現在可以創建自己的窗格,您可以通過CSS z-index命令並將每個矢量圖層插入指定窗格中。
謝謝,但這正是我在我的問題中鏈接的文章的原則 - 使用DOM模型訴諸對象。 – user3523426
它的確使用DOM來排列你的向量,但實現是不同的。意識到DOM排序是確保Leaflet 0.x中SVG元素(特別是多邊形)的特定順序的唯一**方法,除非您已準備好對Leaflet進行足夠的修改,以使其表現得像Leaflet 1.x(用於創建自定義窗格)。 – ghybs