如何select传单上的特定路线?
how to select a specific route on leaflet?
我想画一张地图,上面只画了几条路线。
我想要一个带有数字 1,..,n 的保管箱
当下拉框中的项目被选中时,相应的路线会在地图上高亮显示。
我已经开始使用 "leaflet"。
1) 如何用js在地图上选择特定的特征(例如线)?
我看到了如何从特征集合中进行过滤,但没有看到如何select 从地图上的所有特征中过滤(比如 属性 X)
$('select[name="dropdown"]').change(function() {
var item = $(this).val();
alert("call the do something function on option " + item);
//how to make the chosen line highlighted ??
});
我从你的 那里得到的是你的路线来自 GeoJSON 文件,每个特征都有一个 属性 "id"。
您可以使用 Leaflet 的 geoJson.foreach
来迭代所有功能。对于每个功能,您然后检查它是否符合您正在寻找的标准,在您的情况下,将选择选项的值与 GeoJSON 功能 ID 进行比较。
通过将 var geojson;
放在 loadMap()
函数之外,您可以使其全局可访问,并且可以在 jQuery 函数中使用。
$('select[name="dropdown"]').change(function() {
var item = $(this).val();
geojson.eachLayer(function (layer) {
try {
if(layer.feature.geometry.properties.id == item){
highlightFeature({ "target": layer })
} else {
resetHighlight({ "target": layer })
}
} catch(e) {}
});
});
我想画一张地图,上面只画了几条路线。
我想要一个带有数字 1,..,n 的保管箱
当下拉框中的项目被选中时,相应的路线会在地图上高亮显示。
我已经开始使用 "leaflet"。
1) 如何用js在地图上选择特定的特征(例如线)?
我看到了如何从特征集合中进行过滤,但没有看到如何select 从地图上的所有特征中过滤(比如 属性 X)
$('select[name="dropdown"]').change(function() {
var item = $(this).val();
alert("call the do something function on option " + item);
//how to make the chosen line highlighted ??
});
我从你的
您可以使用 Leaflet 的 geoJson.foreach
来迭代所有功能。对于每个功能,您然后检查它是否符合您正在寻找的标准,在您的情况下,将选择选项的值与 GeoJSON 功能 ID 进行比较。
通过将 var geojson;
放在 loadMap()
函数之外,您可以使其全局可访问,并且可以在 jQuery 函数中使用。
$('select[name="dropdown"]').change(function() {
var item = $(this).val();
geojson.eachLayer(function (layer) {
try {
if(layer.feature.geometry.properties.id == item){
highlightFeature({ "target": layer })
} else {
resetHighlight({ "target": layer })
}
} catch(e) {}
});
});