如何确定位置(纬度/经度)是否在某个多边形内,并且在Android中角落都具有给定的纬度/长度?

时间:2011-01-27 02:58:12

标签: android location polygon point-in-polygon

我已经搜索了很长时间但还没找到答案。有几个接近,但没有任何东西似乎完全回答我的问题!我想取一组坐标,从中创建一个多边形,并确定给定位置是否在该多边形内。任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:1)

在这里http://alienryderflex.com/polygon你发现了一个非常聪明的算法和一些与Java非常接近的C代码(欧几里德近似)。所以我自己写了自己的课:

  1. Android区域的contains()没有为您提供准确的值。 如果返回true,则要检查的点位于多边形中。到现在为止还挺好。 但是,如果它返回false,它仍然可以在里面。我不知道怎么想这个方法应该被称为contains(),因为它对大多数用途来说基本上没用。

  2. 显然你不能在Android中使用Java AWT Polygon类。

答案 1 :(得分:0)

好的 - 完全重写我刚刚发布的答案(我希望没有人阅读)。

构造多边形的路径,将其设置为区域的路径,并调用区域的contains()方法来测试该点。