Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传单-标记器上的中心地图,缩放并打开弹出窗口_Javascript_Leaflet_Geojson - Fatal编程技术网

Javascript 传单-标记器上的中心地图,缩放并打开弹出窗口

Javascript 传单-标记器上的中心地图,缩放并打开弹出窗口,javascript,leaflet,geojson,Javascript,Leaflet,Geojson,我有一张传单地图,它从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: '&

我有一张传单地图,它从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: '&copy; <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>

VarMap=L.map('map').setView([42.652,18.102],13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
var sidebar=L.control.sidebar('sidebar').addTo(map);
功能onEachFeature(功能,图层){
var popupContent=''+feature.properties.Naziv+'';
if(feature.properties.Slika){
popupContent+='
'; } layer.bindPopup(弹出内容); } L.geoJSON(geojsonFeature{ onEachFeature:onEachFeature }).addTo(地图);
这很好,但我想添加一个包含地图之外的要素的列表。列表是可点击的,onClick事件会将功能id传递给函数,该函数会在选定功能上缩放地图并打开弹出窗口


唯一的问题是,我不知道如何将地图缩放到功能,并使用源GeoJSON中的点ID以编程方式打开弹出窗口。

找到了解决此问题的方法。我在地图外添加了一个可点击的特征列表,ID-s和“ref”类。然后我制作了以下jQuery侦听器:

$(".ref").click(function () {
        //extract ID from list HTML element
        var id=eval(this.id);
        //find object with extracted ID in original GeoJSON 
        //use object's coordinates and features to pan the map and display popup
        map.setView([geojsonFeature.features[id].geometry.coordinates[1], geojsonFeature.features[id].geometry.coordinates[0]], 16);
        var popupData = '<h3>'+geojsonFeature.features[id].properties.Naziv+'</h>';;
        if(geojsonFeature.features[id].properties.Slika) {
            popupData += '<br /><img src="slike/'+geojsonFeature.features[id].properties.Slika+'.jpg" alt="Slika" style="width:300px;">';
        }
        var popup = L.popup()
        .setLatLng([geojsonFeature.features[id].geometry.coordinates[1], geojsonFeature.features[id].geometry.coordinates[0]])
        .setContent(popupData)
        .openOn(map);            
    });
$(“.ref”)。单击(函数(){
//从列表HTML元素中提取ID
var id=eval(this.id);
//在原始GeoJSON中查找具有提取ID的对象
//使用对象的坐标和特征平移地图并显示弹出窗口
map.setView([geojsonFeature.features[id].geometry.Coordinations[1],geojsonFeature.features[id].geometry.Coordinations[0]],16);
var popdata=''+geojsonFeature.features[id].properties.Naziv+'';;
if(geojsonFeature.features[id].properties.Slika){
PopUpdatea+='
'; } var popup=L.popup() .setLatLng([geojsonFeature.features[id].geometry.Coordinations[1],geojsonFeature.features[id].geometry.Coordinations[0]])) .setContent(popUpdatea) .openOn(地图); });