Leaflet Separated Div Element Interaction
Solution 1:
What you describe is a common use case. I am pretty sure there should be plenty resources (in particular on SO) that provide the same functionality.
As for the TypeError you report, note that jQuery's $.getJSON returns a jqXHR object, not an array.
As to implement your functionality, you already know that you can perform instructions for each GeoJSON feature through the onEachFeature option of L.geoJSON constructor. Therefore, why not simply building your list items in there, instead of trying to parse your people array separately? This is actually what your code seems to do, by appending a new row into #feature-list table.
The biggest advantage of this approach is that you can directly link your external item "click" event listener to the appropriate layer / marker, since it is available as parameter of the onEachFeature function:
functiongoTo(layer) {
map.panTo(layer.getLatLng());
layer.openPopup();
}
L.geoJSON(null, {
onEachFeature: function (feature, layer) {
// Whatever you want to add to your layer.// Build your external item.// Then attach the "click" event listener.
item.addEventListener("click", function () {
goTo(layer);
});
}
});
Solution 2:
One way of doing this is to bind a new popup to the same position on the map...
function openPopup(elementRightSide){
L.popup()
.setLatLng(elementRightSide.lat, elementRightSide.lng])
.setContent(elementRightSide.content)
.openOn(map);
}
Post a Comment for "Leaflet Separated Div Element Interaction"