我正在使用Omnivore 扩展将我的 GeoJSON 文件加载到 Mapbox/Leaflet 地图中。后来,我在这个数据上使用了 Turf.js。
我正在将外部 GeoJSON 文件作为 customLayer 加载到地图中,但无法在变量中提供 GeoJSON 数据以pts
供以后使用。
var polyLayer = L.geoJson(null, {
style: function(feature) {
return { color: '#f00', weight: 1, opacity: 0.9
};
}
}).addTo(map);
var polys = omnivore.geojson('polys.geojson', null, polyLayer);
var ptsLayer = L.geoJson(null, {
onEachFeature: labelEachFeature,
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, style(feature))
;}
});
var pts = omnivore.geojson('pts.geojson', null, ptsLayer);
polyLayer.on('mouseover', function(e) {
var matchingPoints = turf.featurecollection([])
matchingPoints.features = pts.features.filter(function(pt) {
if(pt.properties.servesbldg === e.layer.feature.properties.bldg_no) return true
})
ptsLayer.setGeoJSON(matchingPoints);
});
function getPoints(building, pts) {
var matchingPoints = turf.featurecollection([])
matchingPoints.features = pts.features.filter(function(pt) {
if(pt.properties.servesbldg === building.properties.bldg_no) return true
})
return matchingPoints
}
这是我所拥有的 GIST,包括 GeoJSON 文件。