【发布时间】:2018-11-12 10:30:10
【问题描述】:
我有从 geojson 中绘制标记并将弹出窗口绑定到它们的传单地图。 GeoJSON 特征集合存储在 geojsonFeature 变量中。代码如下所示:
<script>
var map = L.map('map').setView([42.652, 18.102], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var sidebar = L.control.sidebar('sidebar').addTo(map);
function onEachFeature(feature, layer) {
var popupContent = '<h3>'+feature.properties.Naziv+'</h>';
if (feature.properties.Slika) {
popupContent += '<br /><img src="slike/'+feature.properties.Slika+'.jpg" alt="Slika" style="width:300px;">';
}
layer.bindPopup(popupContent);
}
L.geoJSON(geojsonFeature, {
onEachFeature: onEachFeature
}).addTo(map);
</script>
这很好用,但我想添加一个包含地图外功能的列表。该列表将是可点击的,并且 onClick 事件会将要素 ID 传递给在所选要素上缩放地图并打开弹出窗口的函数。
唯一的问题是我不知道如何将地图缩放到要素并使用源 GeoJSON 中的点 ID 以编程方式打开弹出窗口。
【问题讨论】:
标签: javascript leaflet geojson