获得给定半径(米)和位置的最大经度和经度

时间:2014-04-16 19:02:47

标签: java localization geolocation location

我的代码需要帮助。 我想获得以米为单位的半径的最大纬度和最大经度(以度为单位)以及纬度和经度(以度为单位)的实际位置。 有人能帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:10)

首先,每个纬度都包含appx 111.1 km,因此很容易重新计算线性增量到纬度增量。

第二,1经度的线性外观是不同的并且取决于纬度:小的接近极点,大接近赤道。近似方程式如下:

kmInLongitudeDegree = 111.320 * Math.cos( latitude / 180.0 * Math.PI)

结合这一点,很容易获得覆盖你圈子的纬度和经度的增量:

deltaLat = radiusInKm / 111.1;
deltaLong = radiusInKm / kmInLongitudeDegree;

minLat = lat - deltaLat;  
maxLat = lat + deltaLat;
minLong = long - deltaLong; 
maxLong = long + deltaLong;

要获得更精确的计算,请点击此处:http://en.wikipedia.org/wiki/Longitude经度的长度)。

在Android上,要获得一个纬度包含多少米,请制作2个Location个对象:一个具有当前坐标,一个纬度偏移0.1度,然后计算它们之间的距离并乘以10。与经度一样。