在 Java 中检查 geoFence 和距离内的地理点

vmb*_*vmb 2 java algorithm google-maps geolocation

我是 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;
Run Code Online (Sandbox Code Playgroud)

我如何在 Java 中实现类似的功能? 在此处输入图片说明

Ale*_*ien 5

您只需要一种计算两个纬度/经度坐标之间距离的方法。(在这里搜索 SO 或互联网,这很容易找到)。
如果距离 < r 则该点在圆内。