高德地图 JS API—几何计算计算线面关系等

高德地图 JS API—几何计算计算线面关系等

本章我们将介绍一些常用的计算线面关系的数学计算方法,包括:

  1. 判断点是否在面内 AMap.GeometryUtil.isPointInRing
  2. 判断点是否在线段上 AMap.GeometryUtil.isPointOnSegment
  3. 计算两个经纬度面的交叉区域 AMap.GeometryUtil.ringRingClip



判断点是否在面内

当需要计算指定点是否在某闭合区域内,可以使用静态方法 AMap.GeometryUtil.isPointInRing,返回布尔值。JavaScript

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 inRing = AMap.GeometryUtil.isPointInRing(p0, [p1, p2, p3]);

判断点是否在线段上

当需要计算指定点是否在线段上时,可以使用静态方法 AMap.GeometryUtil.isPointOnSegment,返回布尔值。JavaScript

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 组成的线段上,最后一个参数为 100米 的误差
var inLine = AMap.GeometryUtil.isPointOnSegment(p0, p1, p2, 100);

计算两个面的交叉区域

当需要计算两个面交叉区域时,可以使用静态方法 AMap.GeometryUtil.ringRingClip,返回交叉区域的路径。JavaScript

var p0 = [116.446108, 39.94753];
var p1 = [116.433577, 39.941081];
var p2 = [116.4616, 39.941476];
var p3 = [116.45404, 39.947472]; 
// 计算面 p0-p1-p2 和面 p3-p1-p2 交叉的区域。返回交叉区域路径,如果没有交叉则路径为空。
var range = AMap.GeometryUtil.ringRingClip([p0, p1, p2], [p3, p1, p2]);
0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x