Mariadb:地理

时间:2016-08-29 08:38:08

标签: geospatial mariadb

我需要检查两个地理点之间的距离是否小于 N km 。我正在尝试执行此查询:

select st_distance(
  ST_GeomFromText('point(45.764043 4.835658999999964)', 4326),
  ST_GeomFromText('point(45.750371 5.053963)', 4326)
) < :n

但它不起作用,因为:

  

到目前为止,SRID属性只是MySQL中的虚拟对象,它存储为几何元数据的一部分,但所有实际计算都忽略它,并且假设欧几里得(平面)几何进行计算。

https://mariadb.com/kb/en/mariadb/st_transform-missing/

我的目标是将此距离转换为公制距离或将 N 转换为度数。

我怎么做? 也许,你知道一个更好的解决方案吗?

P.S。我需要一个基于空间方法的解决方案(或者更好的性能)。

1 个答案:

答案 0 :(得分:0)

我认为SPATIAL中的“距离”功能尚不可用。 https://mariadb.com/kb/en/latitudelongitude-indexing/中的常规FUNCTION可以完成工作。但是,args和输出的比例为lat / lng(10000 *度)。可以更改代码以避免缩放,但在该博客页面的上下文中需要它。