这表明mysql GIS扩展尚未完全实现.有人可以为我清除这个 – 这是否意味着如果我存储了一个多边形并想要检测一个点是否落在某个多边形内,它将不会100%准确?如果是这样,它会有多准确?
此外,这需要的SQL,在我的头顶,它将是这样的东西:
SELECT * WHERE WITHIN(POINT(_LAT_ _LONG_), `polygon`)
(其中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.
标签:mysql,gis
来源: https://codeday.me/bug/20190630/1340168.html