gpt4 book ai didi

javascript - 在 Leaflet 中按经纬度过滤 GeoJSON

转载 作者:太空宇宙 更新时间:2023-11-04 15:44:29 25 4
gpt4 key购买 nike

我正在传单中提取一个大型 geoJSON 文件,其中包含近 19,000 个特征(点)。这会导致 map 上出现大量困惑且难以管理。

目标是使用地理定位来标记我的位置,在其周围绘制一个 5nm 的圆圈,并仅显示位于该几何图形内的 geoJSON 特征。

我的项目的精简版本是: https://jsfiddle.net/blintster/d2ucock2/3/

我已经找到了我的位置并绘制了圆圈,但我无法解析位置上的 geoJSON 功能。理想情况下,输出的功能如下:https://esri.github.io/esri-leaflet/examples/spatial-queries.html但是,该方法似乎仅适用于 L.esri.FeatureLayer,并且这是本地导入的 geoJSON。

相关的 geoJSON 层位于下方,其中 [airports] 是 19,000 个条目:

  var allairportsLayer = L.geoJson([airports],  {
filter: airportFilter,
onEachFeature: function(feature, layer) {
layer.bindPopup(feature.properties.Type + " - " + feature.properties.FacilityName + "<br>Contact Info: " + feature.properties.Manager + "<br> Phone: " + feature.properties.ManagerPhone);
}
}).addTo(map);

function airportFilter(feature) {
if (feature.properties.State === "MD") return true
};

我能够通过按州使用过滤方法将结果稍微配对,但这只能让我确定属性是否满足指定的条件。

我还尝试了以下方法:https://www.mapbox.com/mapbox.js/example/v1.0.0/marker-radius-search/没有运气。

有谁知道我可以尝试解析数据的任何其他方法,以便它只显示位于几何图形中的点?

最佳答案

However, that method only seems to apply to L.esri.FeatureLayer and this is a locally imported geoJSON.

esri-leaflet 依托 ArcGIS Server 和 ArcGIS Online 服务,提供支持空间查询的后端托管数据库。

显然,Esri 不是唯一的选择,但您的用例是一个完美的示例,说明不获取您不打算显示的整个数据集是有利的。

  1. 您可以创建一个 arcgis developer account然后登录arcgis.com免费上传您的 .geojson 文件作为新的托管服务。

  2. 您可以找到另一个提供类似功能的托管服务

  3. 您可以运行自己的服务器,安装自己的 PostGIS 数据库并自行连接空间网络查询。

  4. 您可以在页面加载时继续下载所有 19,000 个功能,并且可以:

    a) 简化您的搜索并测试是否相关 L.latLngBounds.contains()每个点。

    b) 使用类似 turf 的内容测试与实际圆的关系。 (这里值得一提的是,传单不包含任何用于生成实际 L.circle 几何图形的内置方法,因此您也需要更多自定义逻辑。我写了类似的东西 here欢迎您抄袭)。

关于javascript - 在 Leaflet 中按经纬度过滤 GeoJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com