gpt4 book ai didi

android - 是否可以从 geojson 检查一个点是否在多边形内?

转载 作者:搜寻专家 更新时间:2023-11-01 09:41:11 25 4
gpt4 key购买 nike

我有一个带有一些多边形的 geojson,将其添加为源并创建了一个图层以在 mapbox map 上显示这些要素。

由于我正在使用此方法:(从示例源编辑:MapboxGLAndroidSDKTestApp)

final PointF pixel = mapboxMap.getProjection().toScreenLocation(point);
List<Feature> fList = mapboxMap.queryRenderedFeatures(pixel, "polygons");
for(Feature feature:fList){
Log.d(TAG,"FeatureInfo: "+feature.toJson());
}

我可以通过将标记位置传递给它来检查标记是否在这些多边形之一内。

但是当我将相机移到远离标记的地方时,多边形不会被渲染并且检查器不再工作。

所以我的问题是,有没有办法检查标记是否在多边形内,无论我的相机指向哪里?

最佳答案

检查一个点是否位于 mapbox 上的多边形内可以使用 turf.js 库 http://turfjs.org/

这是您不需要在 map 框上绘制点或多边形(不绘制)的方式。

var point = turf.point([-75.343, 39.984]); 
// here first is lng and then lat
var polygon = turf.polygon([[
[-2.275543, 53.464547],
[-2.275543, 53.489271],
[-2.215118, 53.489271],
[-2.215118, 53.464547],
[-2.275543, 53.464547]
]], { name: 'poly1'});
// here first is lng and then lat

现在您可以使用 turf 库中的内部方法即 turf.inside(point, polygon);//返回 bool 值 True/False

关于android - 是否可以从 geojson 检查一个点是否在多边形内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39744940/

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