8

일련의 geoJSON 포인트가 있으며 해당 라벨이 부착되어 있습니다.전단지 라벨이 마커 위에 표시되지 않음

var points = L.geoJson (null, { 
    onEachFeature: function (feature, layer) { 
     layer.options.riseOnHover=true; //tried adding this 
     layer.options.riseOffset=9999; //as well as this 
     layer.bindLabel(feature.properties["name"], {className: 'map-label'}); 
     L.setOptions(layer, {riseOnHover: true}); //this as well 
    } 
}); 

이 코드는 JSON 파일의 각 기능을 살펴보고 점 집합을 만드는 코드입니다. 이제지도에 마커를 추가하는 실제 기능은 다음과 같이 진행됩니다

var addJsonMarkers = function() { 
    map.removeLayer(markers); 
    points.clearLayers(); 

    markers = new L.layerGroup(); 
    points.addData(dataJson); 
    markers.addLayer(points); 

    map.addLayer(markers); 

    return false; 
}; 

오전 데 문제는 내가 (당신이 내 코멘트를 볼 수 있습니다) 추가하려고 상관없이이 라벨은 뒤에 항상이다 마커가 예상되는 동작이 아닙니다.

Screenshot of label behind the

나는 그것의 상단에있을 라벨을하고 싶습니다. 나는 map-label 클래스의 z-index을 수동으로 변경하려고 시도했으나 이것에 대한 해결책 인 것 같지만 레이블이 아직 남아있다. 내가 뭘 잘못하고 있는지 아는 사람?

전체 코드는 bringToFront()와 bringToBack() 메소드를 살펴 보자 마커에 대한 그룹 기능을 만들고 그 사이에 레이블 반대를하고, 다시 그것을 가지고

+0

당신은 라벨에 부착되는지도 어떤 창에서 볼을 이동 볼 필요가 마커 위의 하나까지 마커에 대해 {optimized : false}를 볼 수도 있습니다 (사용 가능한 경우). – geocodezip

+0

div의 모든 마커 목록의 마지막 요소로 '전단지 마커'에 연결됩니다. –

답변

6

bindLable 옵션에서 panepopupPane을 지정 리플릿 popupPane에서

layer.bindLabel(
    feature.properties["name"], 
    { 
     className: 'map-label', 
     pane:'popupPane' 
    } 
); 

이 markerPane 그래서 레이블 마커의 상단에 나타납니다보다 높은 수준이다.

https://github.com/Leaflet/Leaflet.label

는 또한이 jsfiddle 확인 옵션 설명과 Leaflet.label위한 작은 문서가 : http://jsfiddle.net/L6kqu54a/

+0

이렇게했습니다. 설명서에서이 옵션을 간과하고 잘못된 위치에서 해결책을 찾았습니다. 감사! –

+0

* options.pane = 'popupPane'; * 솔루션을 확인하십시오. 나는 LeafletJS 0.7.3과 0.7.5에서이 문제를 가지고 있지 않았지만 LeafletJS 1.0.0-beta로 전환했을 때 나를 귀찮게했다. JS 및/또는 CSS를 통해 zIndex를 만지면 작동하지 않습니다. 그러나 options.pane을 사용하면됩니다. – fris

1

here을 볼 수 있습니다. 또는 솔루션을 찾지 못하면 L.info를 추가하여 정보를 표시 할 수 있습니다. 여기를 보시면 어쩌면 도움이 될 것입니다 : http://leafletjs.com/reference.html#featuregroup-bringtofront 어딘가에 코드를 게시하여 살펴볼 수도 있습니다.

+0

답변 해 주셔서 감사합니다. 여기 내 코드를 살펴볼 수 있습니다 : http://pastebin.com/2iH3U0a7 마커 및 레이블에 대한 그룹 기능을 만드는 것과 같은 고급 기능을 수행하는 방법에 대해 잘 알고 있지 않습니다.이 리플릿을 사용하고 있습니다. label 플러그인과'bindLabel()'함수를 사용하여 실제로 백그라운드에서 무엇이 수행되고 있는지 확신 할 수 없습니다. –

+0

의견을 보내주십시오. layer.on ({click : highlightFeature}); – Mensch

+0

여전히 동일합니다. 그러나 마커를 클릭하면 오른쪽 구석에 멋진 정보 팝업이 표시되기 때문에 그 리스너가 필요합니다. ''은 단지 자리 표시 자일뿐입니다. –

관련 문제