我的代码需要帮助。 我想获得以米为单位的半径的最大纬度和最大经度(以度为单位)以及以纬度和经度(以度为单位)的实际位置。 有人能帮我吗?
谢谢!!
最佳答案
首先,每度纬度包含 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. 与经度相同。
关于java - 获取给定半径(米)和位置的最大经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117989/