2014-06-13 5 views
1

커서를 올려 놓거나 클릭하지 않고도 각지도 아이콘의 툴팁 온로드를 표시하려고합니다. 다음은 openPopup 함수를 bindPopup에 연결하려는 시도입니다.지도 상자에 여러 툴팁 온로드 표시

function onEachFeature(feature, layer) { 
     if (feature.properties && feature.properties.popupContent) { 
      popupContent = feature.properties.popupContent; 
     } 
     layer.bindPopup(popupContent).openPopup(); 
    } 

그러나 툴팁은 클릭하지 않으면 표시되지 않습니다.

fiddle

나는 문서의 this page는 다음과 같은 기능을 제공한다고 볼 수 있지만, 그것은 단지 하나의 마커가 아닌 여러 사람을위한 것입니다.

marker.eachLayer(function(m) { 
    m.openPopup(); 
}); 

모든 마커를 어떻게 표시합니까?

답변

1

불행히도 이것은 팝업이 리플릿에서 작동하는 방법입니다.

당신은 당신의 코드에 당신이 당신의 경우 모든 마커를 반복하고 자신의 openPopup 메서드를 호출 할

for (var o in overlays){ 
    overlays[o].eachLayer(function (m) { 
     m.eachLayer(function(l){l.openPopup();}); 
    }); 
} 

를 사용할 수있는 추가하면 https://stackoverflow.com/a/16707921/128165

/*** little hack starts here ***/ 
L.Map = L.Map.extend({ 
    openPopup: function (popup) { 
     //  this.closePopup(); // just comment this 
     this._popup = popup; 

     return this.addLayer(popup).fire('popupopen', { 
      popup: this._popup 
     }); 
    } 
}); /*** end of hack ***/ 

에서 제공하는 작은 해킹이있다

데모 athttp://jsfiddle.net/46f2r/6/

+0

아름답습니다. 감사합니다. – nathanbweb