我有一些包含一些多边形的geojson,将其添加为源并创建了一个图层以在地图集地图上显示这些要素。
由于我使用的是这种方法:(从样本源编辑: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());
}
我可以通过将标记位置传递给其中一个多边形来检查标记是否位于其中一个多边形内。
但是当我将相机远离标记时,多边形不会渲染,检查器不再工作。
所以我的问题是,有没有办法检查标记是否在多边形内部,无论我的相机指向哪里?
答案 0 :(得分:2)
检查地图框上多边形内是否有谎言 可以使用turf.js库http://turfjs.org/
这是您不需要在地图框上绘制点或多边形的方式(无需绘图)。
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 lib的inside方法了
即turf.inside(point, polygon); // return boolean True/False
答案 1 :(得分:0)