gpt4 book ai didi

MySQL GIS/空间扩展 - 融化我的大脑

转载 作者:行者123 更新时间:2023-11-29 14:56:36 24 4
gpt4 key购买 nike

我是 MySQL 中的 GIS 新手,它让我大吃一惊!

我创建了一个表“places”,如下所示:

    CREATE TABLE `places` (
`id` int(6) unsigned zerofill NOT NULL auto_increment,
`business_name` varchar(100) NOT NULL,
`street_postcode` varchar(10) NOT NULL,
`longitude` decimal(22,20) NOT NULL,
`latitude` decimal(22,20) NOT NULL,
`coord` point NOT NULL,
UNIQUE KEY `id` (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=25080 DEFAULT CHARSET=utf8

插入表中的 id、business_name 和 street_postcode

然后我用 PHP 中的经度和纬度坐标更新了表格,如下所示:

UPDATE `places` SET `longitude` = '".$longitude."', `latitude` = '".$latitude."', `coord` = GeomFromText('POINT(".$coord.")') WHERE `id` = '".$row->id."' LIMIT 1

这一切似乎都很顺利,但是当我试图找到距离 X 坐标最近的位置时,我陷入了困境。如何找到距 X 经度和纬度最近的 10 个地点?

这似乎不起作用:

SELECT business_name, street_postcode, ROUND(GLength(LineStringFromWKB(LineString(AsBinary(coord), AsBinary('51.49437081 -0.2275573')))))
AS distance FROM places ORDER BY distance ASC LIMIT 10;

提前致以永远的感谢!

最佳答案

这是因为MySQL中并没有真正实现空间函数。他们删除了所有代码,但没有实现所有方法。

我建议使用 PostGIS 或 SpatiaLite。

关于MySQL GIS/空间扩展 - 融化我的大脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com