我的代码需要帮助。 我想获得以米为单位的半径的最大纬度和最大经度(以度为单位)以及纬度和经度(以度为单位)的实际位置。 有人能帮我吗?
谢谢!
答案 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。与经度一样。