距离、长度、面积 最后更新时间: 2021年01月22日
JS API 为开发者提供了空间数据计算的函数库 AMap.GeometryUtil
,可以帮助开发者计算点线面空间关系、长度、面积等函数。更多示例请查看 示例中心
本章我们将介绍一些常用的数学计算方法,包括:
- 计算两点间的实际距离 AMap.GeometryUtil.distance
- 计算点到线段的最短距离 AMap.GeometryUtil.distanceToSegment
- 计算点到路径的最短距离 AMap.GeometryUtil.distanceToLine
- 计算路径的实际长度 AMap.GeometryUtil.distanceOfLine
- 计算封闭区域的面积 AMap.GeometryUtil.ringArea
计算两点间的实际距离
当需要计算两个地理位置间的实际地面距离时,可以使用静态方法 AMap.GeometryUtil.distance
,返回数据以米为单位。
var p1 = [116.434027, 39.941037];
var p2 = [116.461665, 39.941564];
// 返回 p1 到 p2 间的地面距离,单位:米
var dis = AMap.GeometryUtil.distance(p1, p2);
计算点到线段的最短距离
当需要计算某一点到线段的最短地面距离时,可以使用静态方法 AMap.GeometryUtil.distanceToSegment
,返回数据以米为单位。
var p0 = [116.450378, 39.947585];
var p1 = [116.434027, 39.941037];
var p2 = [116.461665, 39.941564];
// 返回 p0 到线段 p1-p2 的最短地面距离,单位:米
var dis = AMap.GeometryUtil.distanceToSegment(p0, p1, p2);
计算点到路径的最短距离
当需要计算某一点到一段路径的最短地面距离时,可以使用静态方法 AMap.GeometryUtil.distanceToLine
,返回数据以米为单位。该方法与上条的区别在于该方法支持多点组成的线段。
var p0 = [116.450378, 39.947585];
var p1 = [116.434027, 39.941037];
var p2 = [116.461665, 39.941564];
var p3 = [116.466171, 39.937977];
// 返回 p0 到线段 p1-p2-p3 的最短地面距离,单位:米
var dis = AMap.GeometryUtil.distanceToSegment(p0, [p1, p2, p3]);
计算路径的实际长度
当需要计算某段路径的实际长度时,可以使用静态方法 AMap.GeometryUtil.distanceOfLine
,返回数据以米为单位。
var p0 = [116.450378, 39.947585];
var p1 = [116.434027, 39.941037];
var p2 = [116.461665, 39.941564];
// 返回线段 p0-p1-p2 的实际长度,单位:米
var dis = AMap.GeometryUtil.distanceOfLine([p0, p1, p2]);
计算封闭区域的面积
当需要计算指定路径围成的闭合区域面积时,可以使用静态方法 AMap.GeometryUtil.ringArea
,返回数据以平方米为单位。
var p0 = [116.450378, 39.947585];
var p1 = [116.434027, 39.941037];
var p2 = [116.461665, 39.941564];
// 返回点 p0-p1-p2 围成的闭合区域面积,单位:平方米
var area = AMap.GeometryUtil.ringArea([p0, p1, p2]);
更多方法,查看 参考手册