0
点赞
收藏
分享

微信扫一扫

js判断坐标点是否在一个多边形坐标数组范围内

主要用到了射线法(Ray Casting Algorithm)来判断一个点是否在多边形的范围内。

下面是一个简单的JavaScript函数来实现这个功能:

function pointInPolygon(point, polygon) {
  var x = point[0];
  var y = point[1];
  var inside = false;
  for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
    var xi = polygon[i][0];
    var yi = polygon[i][1];
    var xj = polygon[j][0];
    var yj = polygon[j][1];
    var intersect = ((yi > y) != (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
    if (intersect) inside = !inside;
  }
  return inside;
}

// 使用示例
var pointA = [11, 5];
var polygonB = [[2, 3], [9, 3], [11, 8], [4, 11]];
var result = pointInPolygon(pointA, polygonB);
console.log(result); // 输出 true 或 false

在这个函数中,point是一个包含经纬度坐标的数组,而polygon是一个包含多边形坐标点的数组。函数通过遍历多边形的每一条边,使用射线与边的交点数量来判断点是否在多边形内部。如果交点数量为奇数,则点在多边形内部,否则在外部。

举报

相关推荐

0 条评论