Js判断点在几何内算法
本文转载自:CSDN博客
JS判断点在几何内部
重新编辑我
点击查看详细内容
javascript
var checkPoint = [120.94816,31.28292];
var polygonPoints =[
[ 118.2216439660001, 33.940503869000054 ],
[ 118.22536301900004, 33.94065932400002 ],
[ 118.22544694300007, 33.93926268600006 ],
[ 118.22175661300003, 33.939258077000034 ],
[ 118.22175552400006, 33.93926727100006 ],
[ 118.2217219050001, 33.93983108300006 ],
[ 118.22171830600007, 33.93987282300003 ],
[ 118.2217123260001, 33.939914291000036 ],
[ 118.22170407500005, 33.93995548700008 ],
[ 118.22168107000005, 33.94005563700006 ],
[ 118.2216728200001, 33.940096924000045 ],
[ 118.221666948, 33.94013839200005 ],
[ 118.22166324000011, 33.94018013200008 ],
[ 118.2216439660001, 33.940503869000054 ]
];
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;
}
}
指的一提的是,参数checkPoint, polygonPoints不论是经纬度坐标还是空间直角坐标系XYZ都能够运行。
作 者:marvelousone
首发日期:2019-07-29 19:06
文章出处:https://www.cnblogs.com/marvelousone/p/11265862.html
关于博主:前端萌新
支持博主:留步扫个码,右侧领红包打赏~~
转载博客:如果您觉得本文有帮助,请带上署名和本文地址随意转载 | 仅供学习交流,严禁商业用途!
版权声明:自由转载-非商用-非衍生-保持署名(
创意共享3.0许可证
)
公众号:关注一下也是支持~不会打扰您
恰饭小广告区
阿里云优惠链接
阿里云国内短信套餐包活动
阿里云新人活动
ECS老用户福利
分类:
front-end
标签:
JavaScript
, 算法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥