谷歌地图中的线条、长度与面积计算
1. 多边形面积计算函数
在地理信息处理中,计算多边形区域的面积是一项常见任务。下面是一个通用的函数,用于计算一组经纬度点所围成区域的面积:
var earthRadius = 6378137; // in meters
function polylineArea(latlngs) {
var id, sum = 0, pointCount = latlngs.length, cartesians = [];
if (pointCount < 3) return 0;
for (id = 0; id < latlngs.length; id++) {
cartesians[id] = cartesianCoordinates(latlngs[id]);
}
// pad out with the first two elements
cartesians.push(cartesians[0]);
cartesians.push(cartesians[1]);
for (id = 0; id < pointCount; id++) {
var A = cartesians[id];
var B = cartesians[id + 1];
var C = cartesians[id + 2];
sum += spherePointAngle(A, B, C);
}
var alpha = Math.abs(sum - (poi