我试图计算存储在点类型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中用任何坐标手动输入变量,它将无法处理这些变量。
有小费吗?
暂无答案!
目前还没有任何答案,快来回答吧!