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

Gio*_*Gio 3 java location localization geolocation

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

谢谢!!

Ale*_*you 11

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

其次,1经度的线性外观是不同的,取决于纬度:靠近极点小,靠近赤道大.近似方程式如下:

kmInLongitudeDegree = 111.320 * Math.cos( latitude / 180.0 * Math.PI)
Run Code Online (Sandbox Code Playgroud)

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

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

minLat = lat - deltaLat;  
maxLat = lat + deltaLat;
minLong = long - deltaLong; 
maxLong = long + deltaLong;
Run Code Online (Sandbox Code Playgroud)

有关更精确的计算,请查看此处:http://en.wikipedia.org/wiki/Longitude(经度的长度).

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