业务说明
有多个坐标系组成的区域图,需要在区域中心标注区域名称
数据格式(坐标)
[[120.636804,31.424965],[120.641453,31.424861],[120.64131,31.421327],[120.637984,31.421504],[120.63739,31.418098],[120.635566,31.419856]]
计算区域质心
// 计算质心的方法
function Area(p0, p1, p2) {
var area = 0.0;
area = p0[0] * p1[1] + p1[0] * p2[1] + p2[0] * p0[1] - p1[0] * p0[1] - p2[0] * p1[1] - p0[0] * p2[1]
return area / 2;
}
//line 249 计算polygon的质心
function getPolygonAreaCenter(points) {
var sum_x = 0;
var sum_y = 0;
var sum_area = 0;
var p1 = points[1];
for (var i = 2; i < points.length; i++) {
let p2 = points[i];
area = Area(points[0], p1, p2);
sum_area += area;
sum_x += (points[0][0] + p1[0] + p2[0]) * area;
sum_y += (points[0][1] + p1[1] + p2[1]) * area;
p1 = p2;
}
var xx = sum_x / sum_area / 3;
var yy = sum_y / sum_area / 3;
return [xx, yy];
}