【发布时间】:2020-04-14 17:25:02
【问题描述】:
我在数据库中有几个坐标组成了以下多边形,我想检查用户请求/坐标是否在这个红色区域下,那么它应该返回 true,如果请求/坐标在这个区域之外, 它应该返回 false。
我在后端使用 Laravel 和 Js,并为此使用谷歌地图。 我只想制作一个 API 来检查它是否位于当前区域。
【问题讨论】:
标签: php laravel google-maps google-maps-api-3 polygon
我在数据库中有几个坐标组成了以下多边形,我想检查用户请求/坐标是否在这个红色区域下,那么它应该返回 true,如果请求/坐标在这个区域之外, 它应该返回 false。
我在后端使用 Laravel 和 Js,并为此使用谷歌地图。 我只想制作一个 API 来检查它是否位于当前区域。
【问题讨论】:
标签: php laravel google-maps google-maps-api-3 polygon
我喜欢这个问题!答案很酷!
您需要计算 X 轴穿过多边形的次数。如果数字是奇数,它在你的里面,如果是偶数或零,它在外面!
这是一个描述它的链接。 https://www.geeksforgeeks.org/how-to-check-if-a-given-point-lies-inside-a-polygon/
【讨论】:
你应该检查 turf.js https://turfjs.org/ 这是一个空间分析库。
turf.booleanPointInPolygon() 方法正是你想要的。
https://turfjs.org/docs/#booleanPointInPolygon
来自网站文档:
获取一个点和一个多边形或多多边形并确定是否 点位于多边形内。多边形可以是凸的或 凹。该函数可以解决漏洞。
您只需要将点和多边形设为 GeoJSON 格式(turf.js 也有从其他格式转换为 GeoJSON 的方法)。
【讨论】: