Rod*_*era 3 java grails groovy google-maps geolocation
我正在使用Grails下的Google Maps进行混搭,用户可以通过选择地图上的点和半径来创建地理围栏.这将存储在我的数据库中,应用程序不断从GPS设备接收一组坐标.
我想将收到的坐标与存储在圆圈中的区域进行比较.如果该点位于圆圈内部(或外部),程序将触发一个动作.但是,我想知道如何找出坐标位于圆圈内部/外部.有一个Javascript库允许这样做,但我需要在服务器上执行此操作.
是否有Java(甚至Groovy)库?你会如何实现它?
如果从距离点到圆的中心是<= 圆的半径则它是圆内.
如果该区域由多个圆圈构成而不是与所有圆圈相比......则不会花那么长时间.
java.awt.geom.Point2D.Double非常适合这个.
好吧,如果它不需要“完美”,您就不必担心绘制圆圈或类似的东西。您可以只取两个位置(您要测试的位置和圆心)并使用毕达哥拉斯来计算距离。如果该距离小于圆的半径,则它在内部。
但是,有一个警告需要考虑:这不是完美的原因是,对于您的点,您可能会得到纬度和经度……而地球是一个球体。所以在地球的两极附近,这会分崩离析。但对于你正在做的事情来说,它可能已经足够好了。
| 归档时间: |
|
| 查看次数: |
5956 次 |
| 最近记录: |