我是 Java 新手。我创建了一个圆形的地理围栏。我知道中心(纬度,经度)点和半径(以米为单位)。我想检查一个地理点(即纬度、经度)是否在这个栅栏内,如果是,我想找到该地理点到中心点之间的距离。我怎样才能在java中做到这一点。在 mysql 中,有一个查询可以执行此操作
SELECT tripid,create_time, ( 6371 * acos( cos( radians(8.475316) ) * cos(
radians(lattitude ) ) * cos(
radians( longitude ) - radians(76.962528) ) + sin( radians(8.475316) ) * sin(
radians( lattitude ) ) ) ) AS
distance
FROM pack_history where speed<5 and tripid=685 HAVING distance < 0.10 ORDER BY
create_time desc LIMIT 0 ,100;
我怎样才能在Java中实现类似的功能?
最佳答案
您只需要一个计算两个纬度/经度坐标之间的距离的方法。
(在SO或互联网上搜索,这很容易找到)。
如果距离 < r 则该点在圆内。
关于java - 检查 geoFence 内的 Geopoint 和 Java 中的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515093/