Leaflet-Omnivore 使外部 file.geojson 可用于 javascript 变量
Leaflet-Omnivore make external file.geojson available to javascript variable
我正在对这些数据使用 Omnivore extension to load my GeoJSON files into a Mapbox/ Leaflet map. Later, I'm using Turf.js。
我正在将外部 GeoJSON 文件作为 customLayer 加载到地图中,但在变量 pts
中提供 GeoJSON 数据供以后使用时遇到问题。
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
}
Here's a GIST of what I've got 包括 GeoJSON 文件。
与其使用 omnivore 抓取 pts 层...为什么不声明一个 pts 变量,使用 jQuery.getJSON 抓取 pts.geojson 并将该响应分配给 pts 变量,然后调用 L.geoJson(pts).addTo(地图)。然后你添加了图层,并且你有原始的 geojson 结构可用于其他地方,如果你需要的话。
我正在对这些数据使用 Omnivore extension to load my GeoJSON files into a Mapbox/ Leaflet map. Later, I'm using Turf.js。
我正在将外部 GeoJSON 文件作为 customLayer 加载到地图中,但在变量 pts
中提供 GeoJSON 数据供以后使用时遇到问题。
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
}
Here's a GIST of what I've got 包括 GeoJSON 文件。
与其使用 omnivore 抓取 pts 层...为什么不声明一个 pts 变量,使用 jQuery.getJSON 抓取 pts.geojson 并将该响应分配给 pts 变量,然后调用 L.geoJson(pts).addTo(地图)。然后你添加了图层,并且你有原始的 geojson 结构可用于其他地方,如果你需要的话。