2013-01-25 78 views
2

我是Java新手。我创建了一个圆形的地理围栏。我知道中心(纬度,经度)点和半径(以米为单位)。我想检查一个地理点(即纬度,经度)是否在这个围栏内,如果它是真的,我想找到这个地理点到中心点之间的距离。我怎样才能在java中做到这一点。在mysql中有这样一个查询在Java地理区域和距离内检查地理区域

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中的类似功能? enter image description here

+0

请看[java.lang.Math](http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html)类。对于所有的数学计算 – codeMan

回答

3

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