我有 5000 多个 LatLng 点,对于每个点,我想找出它们属于哪个特征(区域)。这些特征来自Philippe Ivaldi 的 kmz 层,转换为 GeoJSON。
目前,我在双for
循环中使用 turfjs 执行此操作。正如预期的那样,计算会冻结浏览器十分钟,这不是很方便。
这是我的代码:
function countCeaByLayer(geoJsonLayer){
jQuery.getJSON('http://localhost/server/retrieveData.php', function(data){
var turfPoints = [];
for(var i = 0; i < data.length; i++){
turfPoints.push(turf.point([data[i].longitudeWGS84, data[i].latitudeWGS84]));
}
var features = geoJsonLayer.toGeoJSON().features;
for(var i = 0; i < features.length; i++){
var turfPointsNew = [];
for(var j = 0; j < turfPoints.length; j++){
var isInside = turf.inside(turfPoints[j], features[i]);
if(!isInside) turfPointsNew.push(turfPoints[j]);
}
turfPoints = turfPointsNew;
}
console.log("done");
});
}
我该怎么做才能避免冻结浏览器?
- 让它异步?
node
在服务器上进行计算turfjs
?- 或者使用and部署
leafletjs
在服务器上?node
leaflet-headless
...还是我应该处理它?
谢谢!