我是javascript的新手 - 但我编写了以下代码来绘制列车的位置,并使用传单的“onEachFeature”为每个功能添加列车路线(请参阅screenshot):
//Add marker description before being added to layer
function eachFeature(feature, layer) {
layer.bindPopup(feature.properties.id);
layer.on({
mousedown: onClick,
mouseover: whenHovered,
mouseout: offHovered
});
}
// Show/hide train lines on hover
function onClick() {
$.getJSON("AEHL_2b.geojson",
function(data) {
staticRoute = L.geoJson(data);
staticRoute.addTo(map);
});
}
function whenHovered() {
$.getJSON("OPS_1b.geojson",
function(data) {
hoverRoute = L.geoJson(data);
hoverRoute.addTo(map);
});
}
function offHovered() {
map.removeLayer(hoverRoute);
}
基本上,我正在使用传单的onEachFeature函数(特别是传单实时)来尝试做两件事:
目前,我已经对geoJson进行了硬编码,但我似乎找不到抓取每个要素的传单ID以便在我的getJson函数中使用的方法。
是否有可能获取不同的geoJson文件,如果是这样,有人可以帮我解决一些问题吗?任何帮助,因为我是javascript的新手
谢谢!
答案 0 :(得分:2)
未来自我/未来的自我更新 - 如果您将onClick / whenHovered / offHovered函数放在onEachFeature使用的函数中,它就会起作用。 E.g。
function eachFeature(feature, layer) {
layer.bindPopup(feature.properties.id);
layer.on({
mousedown: onClick,
});
//Add train route when clicked, or when hovering
function onClick(){
$.getJSON(feature.properties.id+".geojson",
function(data) {
staticRoute = L.geoJson(data);
staticRoute.addTo(map);
});
}
}