我需要帮助我的代码。 给定一个半径(以米为单位)和实际位置的纬度和经度(以度为单位),我想获得最大纬度和最大经度。 有人能帮我吗?
谢谢!
我需要帮助我的代码。 给定一个半径(以米为单位)和实际位置的纬度和经度(以度为单位),我想获得最大纬度和最大经度。 有人能帮我吗?
谢谢!
首先,每一纬度包含约 111.1公里
,因此很容易将线性差值重新计算为纬度差值。
第二点是,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上,要获取一纬度包含多少米,请创建两个Location
对象:一个带有当前坐标,另一个带有纬度偏移0.1度,然后计算它们之间的距离并乘以10。对于经度也是同样的方法。