微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql GIS(多边形内点和点附近)

我见过这个问题:See if lat / long falls within a polygon using mysql

这表明MysqL GIS扩展尚未完全实现.有人可以为我清除这个 – 这是否意味着如果我存储了一个多边形并想要检测一个点是否落在某个多边形内,它将不会100%准确?如果是这样,它会有多准确?

此外,这需要的sql,在我的头顶,它将是这样的东西:

SELECT * WHERE WITHIN(POINT(_LAT_ _LONG_), `polygon`)
@H_502_11@

(其中polygon是一个表列,并且该点是根据给定的lat和long值构造的.)

如果精度足够,你会如何找到接近给定Lat和Long的点?关于使用COS / SQRT或内置disTANCE功能有不同的意见,这是最好的和/或最好的方法吗?

实质上:

> MysqL GIS扩展是否可以用于检测点是否在多边形内(必须相当准确,多边形不是定义的形状或大小).
>如果是,那么检测这个的最佳方法是什么,另外想要的是找到给定Lat和Long附近点的最佳方法

解决方法:

根据docs,除distance()和Related()之外的所有函数仅测试MBR关系.

Currently, MysqL does not implement these functions according to the specification. Those that are implemented return the same result as the corresponding MBR-based functions. This includes functions in the following list other than distance() and Related().

不可能说MBR测试的准确性是否足够,因为这很大程度上取决于多边形的形状.

“Are the MysqL GIS extensions up to the job for detecting if a point is within a polygon (has to be fairly accurate, polygon is not a defined shape or size)?”

没有.

如果可以,请使用PostGIS.

另一种方法是实施Ray Casting algorithm for the Point-in-Polygon problem.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐