我在数据库中有几个坐标,它们组成以下多边形,我想检查用户请求的坐标/该坐标是否落在该红色区域内,然后它应返回true,以及请求的坐标是否在该区域之外,它应该返回false。
我在后端使用Laravel和Js,并为此使用了Google地图。 我只想制作一个API,以检查它是否位于当前区域中。
答案 0 :(得分:2)
您应该检查 turf.js https://turfjs.org/,这是一个空间分析库。
turf.booleanPointInPolygon()
方法正是您想要的。
https://turfjs.org/docs/#booleanPointInPolygon
来自站点文档:
获取一个点和一个多边形或多多边形,并确定是否 点位于多边形内部。多边形可以是凸面或 凹。该功能解决了漏洞。
您只需要将Point和Polygon设置为GeoJSON格式(turf.js也提供了从其他格式转换为GeoJSON的方法)。
答案 1 :(得分:0)
我喜欢这个问题!答案很酷!
您需要确定X轴与多边形交叉的次数。如果数字是奇数,则在您的内部,如果是偶数或零,则在您的外部!
这里是描述它的链接。 https://www.geeksforgeeks.org/how-to-check-if-a-given-point-lies-inside-a-polygon/