获取位置地址w.r.t我所在的多边形

时间:2013-10-01 01:29:40

标签: android google-maps google-maps-android-api-2

我有超过200个多边形要创建,我通过LocationListenerOnChanged()获取位置,但我想根据当前位置知道我所在的多边形。

我将如何使用LatLng每2英里内检查每个多边形内部。如何使整个过程更快或android os具有内置功能。

我检查了很多与android maps v2相关的文档,但我没有得到任何关于它的信息。我很感激任何帮助w.r.t主题。谢谢。

1 个答案:

答案 0 :(得分:2)

android api v2中没有直接的方法来知道latlng是否位于多边形内。因此,您需要进行称为多边形内点检查的数学计算。您可以查看以前帖子中建议的以下两种方法:

1,Raycasting method

2,Winding number method

如果在您的情况下,针对所有200个或更多多边形检查点会减慢您的应用,您可以考虑减少要检查的多边形数量。首先,对于每个多边形,除了它们的顶点之外,还存储近似的几何中心。然后,当您获得一个新位置进行检查时,找到该位置与所有多边形的几何中心之间的距离。现在只取几个中心最接近点的多边形(比如说8),然后在上面的任何点多边形检查那些选定的多边形。