iOS根据多个坐标点得到中心点

示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
func getPointsCenter() {
let points = [
[118.72735499843424, 32.16250875496402],
[118.72868071329253, 32.1622072483823],
[118.72844986716387, 32.16153722994673],
[118.72726266031236, 32.16188340660801],
[118.72735499843424, 32.16250875496402]
]
let pointCount = Double(points.count)
var A = 0.0
var B = 0.0
var C = 0.0
for point in points {
let lon = point[0] * Double.pi / 180
let lat = point[1] * Double.pi / 180
var x = 0.0
var y = 0.0
var z = 0.0
x = cos(lat) * cos(lon)
y = cos(lat) * sin(lon)
z = sin(lat)
A += x
B += y
C += z
}
A = A / pointCount
B = B / pointCount
C = C / pointCount

let tmp_lon = atan2(B, A)
let tmp_lat = atan2(C, sqrt(A * A + B * B))
print("中心点:\(tmp_lat * 180 / Double.pi), \(tmp_lon * 180 / Double.pi)")
}

验证方法:自适应显示多个点标记-点标记-示例中心-JS API 示例 | 高德地图API (amap.com)

image-20230606104714813

参考链接:

根据多个坐标点得到中心点,适用于腾讯地图、百度地图、高德地图等等_求多个坐标点的中心点_michaelzhouh的博客-CSDN博客