每个GeoJSOn功能的不同URL

时间:2015-02-03 12:53:36

标签: url leaflet geojson

我有一个地图,可以加载具有多个线要素的GeoJSON文件。当我单击一行时,地图会执行一些操作(在这种情况下,它会更改边界并在其下面添加一些文本)。

var trails = new L.GeoJSON.AJAX('https://googledrive.com/host/0B55_4P6vMjhITEU4Ym9iVG8yZUU/trasee.geojson', {
onEachFeature: function(feature, layer){
    layer.on({
        click: function() {
            map.fitBounds(this.getBounds());
            $('#description').html('some text ' + feature.properties.id);

        }
    });
}
}).addTo(map);

是否可以为每一行提供不同的URL,因此我可以直接访问特定功能(例如https://websiteurl.com#thisfeatureid)?该链接将加载具有所选要素的边界和描述的地图。 这是地图的JSFiddle:

http://jsfiddle.net/pufanalexandru/qxbuwaeg/

1 个答案:

答案 0 :(得分:0)

给出https://websiteurl.com#5等跟踪的网址,这是一种方法。

  1. 当文档准备好(载入小册子,加载geojson,映射初始化),但在设置映射边界之前,使用javascript或URI解析器从URL检查跟踪id的参数。简单的例子:

    var trail_id = document.URL.split('#')[1];
    
  2. 如果您获得了ID,请在路径功能中搜索该ID的匹配项,并缩放到边界,就像您已经点击一样

    trails.eachLayer(function(layer) {  
        if (layer.feature.properties.id == trail_id) {
            map.fitBounds(this.getBounds());
            $('#description').html('some text ' + feature.properties.id);
            return; 
        }
    }