点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部:

function isInPolygon(checkPoint, polygonPoints) {var counter = 0;var i;var xinters;var p1, p2;var pointCount = polygonPoints.length;p1 = polygonPoints[0];for (i = 1; i <= pointCount; i++) {p2 = polygonPoints[i % pointCount];if (checkPoint[0] > Math.min(p1[0], p2[0]) &&checkPoint[0] <= Math.max(p1[0], p2[0])) {if (checkPoint[1] <= Math.max(p1[1], p2[1])) {if (p1[0] != p2[0]) {xinters =(checkPoint[0] - p1[0]) *(p2[1] - p1[1]) /(p2[0] - p1[0]) +p1[1];if (p1[1] == p2[1] || checkPoint[1] <= xinters) {counter++;}}}}p1 = p2;}if (counter % 2 == 0) {return false;} else {return true;}
}

测试:

先选取一个范围:http://geojson.io/#map=15/31.1422/121.6617

1. 选取一点再这个范围内进行测试:

测试再浏览器控制台加载方法和调用,验证这一点在范围中

2:测试某一点不在这个范围之内

点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部相关推荐

  1. 点在多边形内算法,C#判断一个点是否在一个复杂多边形的内部

    判断一点是否在不规则图像的内部算法,如下图是由一个个点组成的不规则图像,判断某一点是否在不规则矩形内部,先上效果图 算法实现如下,算法简单,亲试有效 public class PositionAlgo ...

  2. JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)

    怎么样判断一个坐标点在一个多边形区域内?包括规则多边形,不规则多边形,还有圆... 1 判断一个坐标是否在圆形区域内? 多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域 ...

  3. js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内...

    /** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对 ...

  4. [转]如何判断一个点是否在一个多边形内部

    原文地址:http://hi.baidu.com/wayright/item/ad18e4c0c5446b2dee4665c9 在多边性的存储中,每一个多边形都是由一系列连续的点组成,例如保存为数组P ...

  5. 怎么用C语言搜索有根区间,C语言 判断一个数字是否在一个指定的区间范围内?求解答。。。。...

    #include #include usingnamespacestd; intmain() { inta,b,c,d; intn; printf("请输入第一个区间:"); sc ...

  6. js 判断一个字符在字符串中出现的次数 - 代码篇

    js 判断一个字符在字符串中出现的次数 - 代码篇 判断:字符串string中有多少个数字0? var string='0,0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1, ...

  7. js 判断一个 object 对象是否为空

    js 判断一个 object 对象是否为空 转载原文 判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in... 遍历属性,为真则为"非空数组":否 ...

  8. Java 判断一个点是否在一个三角形内

    题目描述:   如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{int x;int y;public POINT(int x,int y){this.x ...

  9. JS判断一个日期是这一年的第几天

    使用JS判断一个日期是这一年的第几天. 首先我们先整理一下思路: 假如是12月11日,那么我们需要将1-11月的天数加起来,然后加上12月的11天. 假如是1月9日,那么我们只需要将1月的这九天就可以 ...

最新文章

  1. JavaScript正则表达式笔记
  2. Golang for range陷阱
  3. java怎么遍历优先级队列_打印优先级队列的内容[java]
  4. python中xpath定位下拉菜单_Selenium2+Python3.6实战(八):定位下拉菜单出错,如何解决?用select或xpath定位。...
  5. python list,str的拼接与转换
  6. 从“朕已阅”到“翻牌子”,程序员的仪式感可以有多重?
  7. 常用自动化测试工具介绍(支持B/S、C/S)
  8. 数据结构与算法-第三章 链表
  9. 【C语言】如何得出各种数据类型所占内存空间
  10. excel表格中身份证信息提取出生年月日,年龄,性别,出生地
  11. maya表面种植物体插件 Plant Objects on surface v1.0 下载及教程
  12. Kettle连接Mysql报错:Driver class org.gjt.mm.mysql.Driver could not be found
  13. 高光谱图像算法实习工程师面经
  14. 科学计算机常用按键,电脑计算器里面的“科学型”的里面所有的按键的功能
  15. 荐书 | 手牵手一步两步望着天,看星星一颗两颗连成线
  16. 损失函数-负对数似然和交叉熵(Pytorch中的应用)
  17. java怎么快速补缺_Java基础查漏补缺(1)
  18. 如何成为一门领域的专家2
  19. LeetCode系列-DFS深度优先遍历
  20. Caliburn实现MVVM模式的编程

热门文章

  1. oracle中书写规范,oracle sql书写规范
  2. [转贴]周星驰经典对白
  3. 055.Javascript初探
  4. 读理工科研究生的心态
  5. 【博主推荐】html好看的爱心告白源码
  6. 【WPF、UWP】搜索蓝牙设备
  7. 官网下载Eclipse
  8. A-Level CS 计算机科学 考试知识点——考试介绍第1章
  9. 农业大田作物智慧种植科研
  10. border边框线样式