我遇到了一种情况,我应该确定给定坐标列表的中位数并设置 GoogleMap 的相机缩放级别(以便在地图加载时所有坐标都显示在单个视图中,用户不需要缩放地图)。
我按照下面的方法来确定给定坐标的中位数。
Convert lat/lon to Cartesian coordinates for each location.
X = cos(lat) * cos(lon)
Y = cos(lat) * sin(lon)
Z = sin(lat)
Compute average x, y and z coordinates.
x = (x1 + x2 + ... + xn) / n
y = (y1 + y2 + ... + yn) / n
z = (z1 + z2 + ... + zn) / n
Convert average x, y, z coordinate to latitude and longitude.
Lon = atan2(y, x)
Hyp = sqrt(x * x + y * y)
Lat = atan2(z, hyp)
Ref :计算多个经纬度坐标对的中心点
现在我想设置谷歌地图的相机缩放值,以便所有坐标都覆盖在单个视图中。
例如 :
如果确定坐标列表存在于加利福尼亚州和佛罗里达州,则应加载谷歌地图并显示整个美国。
如果确定坐标列表存在于加利福尼亚州和德克萨斯州之间,则在设置 GoogleMap 的缩放值时,应仅显示美国地图的该部分。
我正在 Andriod 应用程序和 iOS 中实现这一点。
让我知道我们怎样才能做到这一点。