检查坐标是否在多边形中

时间:2019-12-23 12:02:13

标签: php laravel google-maps google-maps-api-3 polygon

我在数据库中有几个坐标,它们组成以下多边形,我想检查用户请求的坐标/该坐标是否落在该红色区域内,然后它应返回true,以及请求的坐标是否在该区域之外,它应该返回false。

我在后端使用Laravel和Js,并为此使用了Google地图。 我只想制作一个API,以检查它是否位于当前区域中。

This image is about polygon area, I want to check if a request falls under the red region and return true

2 个答案:

答案 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/