高德地图 Web JS API示例学习笔记(15)——几何计算(距离/面积计算、关系判断)

本文详细介绍如何使用AMap API进行地图上的距离和面积计算,包括两点间直线距离、路径长度、区域面积的精确测量方法,以及判断点是否在线上、在多边形内和路径方向的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

距离/面积计算

两点间距离

使用LngLat.distance计算两个经纬度之间的直线距离。

var p1 = m1.getPosition();
var p2 = m2.getPosition();
var distance = Math.round(p1.distance(p2));

路径长度

使用 AMap.GeometryUtil.distanceOfLine 计算某段路径的实际长度,返回数据以米为单位。

var arr=new Array();//经纬度坐标数组 
arr.push(new AMap.LngLat("116.368904","39.913423")); 
arr.push(new AMap.LngLat("116.382122","39.901176")); 
arr.push(new AMap.LngLat("116.387271","39.912501")); 
arr.push(new AMap.LngLat("116.398258","39.904600")); 
arr.push(new AMap.LngLat("116.427097","39.912500"));
var distance = Math.round(AMap.GeometryUtil.distanceOfLine(arr));

区域面积

使用 AMap.GeometryUtil.ringArea 计算区域,返回数据以平方米为单位。

var area = Math.round(AMap.GeometryUtil.ringArea(path));

关系判断

点是否在线上

使用 AMap.GeometryUtil.isPointOnSegment 判断点是否在线上。

// 判断 marker 是否在线段上,最后一个参数为 m米 的误差
// pos为marker的坐标
// path为线段的两个端点坐标
var inLine = AMap.GeometryUtil.isPointOnSegment(pos, path[0], path[1],m);

点是否在多边形内

使用 AMap.GeometryUtil.isPointInRing ,判断点是否在多边形内。

// point为点的坐标
// path为多边形的坐标数组
var isPointInRing = AMap.GeometryUtil.isPointInRing(point, path);

路径是否顺时针

使用 AMap.GeometryUtil.isClockwise ,判断路径是否为顺时针。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值