微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 MYSQL Point 中存储两个 API 值

如何解决如何在 MYSQL Point 中存储两个 API 值

我从 PHP 中的 API 接收局域网和批次数据,并使用 ($jsonData[0]['lat']);$jsonData[0]['lon']); 从响应中提取它们。如何将它们添加到我的 MysqLlocation 中作为 POINT 值?

解决方法

MySQL 的几何内容提供了 ST_GeomFromText() function。你可以这样使用它。

ST_GeomFromText('POINT(40.7488 -73.9854)')

请注意,'POINT(40.7488 -73.9854)' 是一个文本字符串,并且两个数字之间没有逗号。

如果你做这样的事情来制作这些文本字符串之一

$pointText = "POINT(" . $jsonData[0]['lat'] . " " .  $jsonData[0]['lon'] . ")";

然后你可以做这样的插入:

INSERT INTO tbl (geocolumn) VALUES (ST_GeomFromText(?));

以 $pointText 作为参数。

对于 8 之前的 MySQL 版本,我同意 @El_Vanja 的建议,即为经纬度使用单独的 FLOAT 列。但是在版本 8 中,MySQL 能够处理球面和笛卡尔坐标系,因此空间索引非常有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。