2017-06-13 75 views
1

我在由許多圓圈標記組成的小冊子地圖中有一個特徵(L.circleMarker)。標記符號表示在該位置是否拍攝照片。在小冊子功能前面加上一些圓圈標記

我想要做的是將所有在該位置具有照片的標記帶到圖層的頂部,類似於如何通過鼠標懸停提高標記(但沒有鼠標懸停在這個案例)。

這裏是原始版本的一個例證:
enter image description here

而這正是我想他們是:

enter image description here

我認爲具有照片VS不同層。沒有照片,但由於地圖中的某些功能,最好是在一個圖層中。

任何有關如何使用JavaScript和Leaflet可以完成的想法?

+1

不福美來r與小冊子,但這是我會嘗試(按順序)1.檢查文檔,看看是否有「帶到前面」類型的功能。 2.找出鼠標懸停在前面的方式(檢查元素,觀察樣式,它可能是z-index),然後在代碼中應用相同的更改。 – dlsso

回答

2

在圓形標記的樣式定義中,可以指定標記所呈現的「地圖窗格」(http://leafletjs.com/reference-1.0.3.html#map-pane).)似乎這是指定circleMarkers的zIndex的唯一方法(常規標記具有zindexOffset選項。)

我的代碼如下所示:

var style = { 
radius: 1.75, 
fillColor: "darkred", 
color: "darkred", 
pane: 'overlayPane' 
}; 
var picStyle = { 
    radius: 0.25, 
    fillColor: "blue", 
    color: "blue", 
    pane: 'shadowPane' 
}; 
var site2 = new L.geoJSON(valuesSite2, { 
    onEachFeature: onEachFeature, 
    pointToLayer: function (feature, latlng) { 
     feature.properties.layer = "Site 2"; 
     onEachFeature: onEachFeature; 
     if (<there is a picture>) { 
      return L.circleMarker(latlng, picStyle) 
     } else { 
      return L.circleMarker(latlng, style); 
     } 
    } 
}).addTo(map); 

結果是這樣的:
enter image description here