我有一个地图,可以加载具有多个线要素的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:
答案 0 :(得分:0)
给出https://websiteurl.com#5等跟踪的网址,这是一种方法。
当文档准备好(载入小册子,加载geojson,映射初始化),但在设置映射边界之前,使用javascript或URI解析器从URL检查跟踪id的参数。简单的例子:
var trail_id = document.URL.split('#')[1];
如果您获得了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;
}
}