python 不规则多边形计算重心点
程序员文章站
2024-03-16 19:37:58
...
因为要在经纬度地图上求一个不规则多边形的重心
重心相对中心的区别对于不规则多边形来说是有很大差异的
def get_centerpoint(lis):
area = 0.0
x,y = 0.0,0.0
a = len(lis)
for i in range(a):
lat = lis[i][0] #weidu
lng = lis[i][1] #jingdu
if i == 0:
lat1 = lis[-1][0]
lng1 = lis[-1][1]
else:
lat1 = lis[i-1][0]
lng1 = lis[i-1][1]
fg = (lat*lng1 - lng*lat1)/2.0
area += fg
x += fg*(lat+lat1)/3.0
y += fg*(lng+lng1)/3.0
x = x/area
y = y/area
return x,y
lis 是经纬度列表
上一篇: MySQL5.7安装教程