Javascript 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序
这是我的小提琴: 我需要根据GeoJSON文件中的ID号组织选择器中项目的顺序。它是“我的代码”的一部分,其中项目显示在列表中:Javascript 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序,javascript,leaflet,Javascript,Leaflet,这是我的小提琴: 我需要根据GeoJSON文件中的ID号组织选择器中项目的顺序。它是“我的代码”的一部分,其中项目显示在列表中: map.on("layeradd", function(e) { if(!e.layer.options) { return; } if((e.layer.options.id != "markerLayer1") && (e.layer.options.id != "markerLayer2")) { retur
map.on("layeradd", function(e) {
if(!e.layer.options) {
return;
}
if((e.layer.options.id != "markerLayer1") && (e.layer.options.id != "markerLayer2")) {
return;
}
var markers = e.layer.getLayers();
var mySelector = $("#mySelector");
for(var i = 0; i < markers.length; i++) {
mySelector.append("<option value='" + L.stamp(markers[i]) + "'>" + markers[i].feature.properties.name + "</option>");
}
});
map.on(“layeradd”,函数(e){
如果(!e.layer.options){
返回;
}
如果((e.layer.options.id!=“markerLayer1”)&&(e.layer.options.id!=“markerLayer2”)){
返回;
}
var markers=e.layer.getLayers();
var mySelector=$(“#mySelector”);
对于(var i=0;i
尝试使用:
map.on(“layeradd”,函数(e){
// ...
var markers=e.layer.getLayers();
//获取下拉列表
var mySelector=$(“#mySelector”);
标记.排序(函数(a,b){
//获取ID,并将其解析为int
var-aId=parseInt(a.feature.properties.id,10),
bId=parseInt(b.feature.properties.id,10);
返回援助<投标?-1:aId>投标?1:0
}).forEach(功能(标记器){
mySelector.append(“”)
+marker.feature.properties.id//我添加了标记id
+ '. '
+marker.feature.properties.name
+ "");
})
});
看
map.on("layeradd", function(e) {
// ...
var markers = e.layer.getLayers();
// Get the dropdown
var mySelector = $("#mySelector");
markers.sort(function(a,b) {
// get the ids, and parse them as int
var aId = parseInt(a.feature.properties.id,10),
bId = parseInt(b.feature.properties.id,10);
return aId < bId ? -1 : aId > bId ? 1 : 0
}).forEach(function(marker) {
mySelector.append("<option value='"
+ L.stamp(marker) + "'>"
+ marker.feature.properties.id // I added the marker id
+ '. '
+ marker.feature.properties.name
+ "</option>");
})
});