如何在php中操作空间点sql数据类型?

sy5wg1nm  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(147)

我试图计算存储在点类型sql列中的两点之间的地球距离。
用户可以指定他们的家乡城市,我的应用程序将允许他们搜索周围的不同事物。
我的问题是,通过查询,我获取与用户的家乡城市相关的所有列,并将它们存储到变量中。虽然我不知道如何在php中操作sql点数据类型。
当我写这个的时候:

var_dump($coordinates); // city coordinates that MySQL will fetch

php在显示不可读字符时会告诉我这是一个字符串。
我尝试用这个sql语句获取经度和纬度,并将它们存储在变量中:

'SELECT ST_X(coordinates) AS longitude, ST_Y(coordinates) AS latitude FROM cities';

但是这个问题

SELECT * FROM table a 
    INNER JOIN cities b ON a.cityId = b.id
WHERE (acos(sin(radians(ST_Y(b.coordinates))) 
      * sin(radians(*ANY_VALUE*)) 
      + cos(radians(ST_Y(b.coordinates))) 
      * cos(radians(*ANY_VALUE*)) 
      * cos(radians(ST_X(b.coordinates)) 
      - radians(*ANY_VALUE*))) 
      * 6378137) <= 50000

如果我在phpmyadmin中用任何坐标手动输入变量,它将无法处理这些变量。
有小费吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题