小编Bha*_*ani的帖子

OSMBonusPack:检查我的GeoPoint是否在多边形内

我正在与osmdroid奖励包一起在android中使用osmdroid。我画了一个多边形。现在,我要检查GeoPoint(Latitude,经度)是否位于绘制的多边形内。我该怎么做?

在这里,我正在使用contains方法,该方法仅接受MotionEvent对象,并且不起作用。还有其他方法吗?

我的代码如下。

GeoPoint gPt0 = new GeoPoint(23.215210, 72.648600);
GeoPoint gPt1 = new GeoPoint(23.216030, 72.648340);
GeoPoint gPt2 = new GeoPoint(23.217400, 72.649070);
GeoPoint gPt3 = new GeoPoint(23.216570, 72.650290);
GeoPoint gPt4 = new GeoPoint(23.214750, 72.649130);

List<GeoPoint> list = new ArrayList<>();
list.add(gPt0);
list.add(gPt1);
list.add(gPt2);
list.add(gPt3);
list.add(gPt4);
Polygon polygon = new Polygon(getApplication());
polygon.setPoints(list);
GeoPoint center = new GeoPoint(23.21612, 72.64933);
map.getOverlays().add(polygon);

MotionEvent event = MotionEvent.obtain(1, 1, MotionEvent.ACTION_HOVER_ENTER, (float)23.21602, (float) 72.64926, 1);

Log.e("CONTAINS", polygon.contains(event)+"");
Run Code Online (Sandbox Code Playgroud)

android osmdroid

5
推荐指数
1
解决办法
833
查看次数

标签 统计

android ×1

osmdroid ×1