如何处理PHP中的MySQL POINT()字段?

时间:2019-04-13 06:57:35

标签: php mysql

我有一个带有POINT字段的MySQL表来存储GPS数据(经度和纬度),但是我无法在PHP中处理它。

$query = "SELECT COORDS FROM PHOTOS";
$result = mysqli_query($db_conn, $query);
mysqli_fetch_assoc($result);
echo $result['COORDS'];

这样我就得到了一个奇怪的字符串。

我在MySQL控制台中使用过AsText,它为我提供了带有坐标的WKT,但我想在PHP中捕获它。

我想做这样的事情:

$query = "SELECT AsText(COORDS) FROM PHOTOS";

但是我的问题是如何通过PHP访问该字段?

(我也听说过PHP中的unpack()函数,但它会向我抛出警告)

1 个答案:

答案 0 :(得分:1)

假设您已在数据库中存储了从文本e GeomFromText('POINT(25 -118)')开始的几何图形 在名为MY_POINT的列

您可以使用

轻松获取您的点的X,Y坐标
SELECT ST_X(MY_POINT) as latitude,  ST_Y(MY_POINT) as longitude  FROM MY_TABLE;

在php中,您可以使用纬度和经度作为坐标数组中的列索引来访问值

SELECT ST_X(COORDS) as latitude,  ST_Y(COORDS) as longitude  FROM MY_TABLE;