使用MySQL将小数转换为点(经度、纬度)

pgx2nnw8  于 2023-01-12  发布在  Mysql
关注(0)|答案(1)|浏览(122)

我到处找这个问题。找不到好答案。
我的目标是建立一个长,纬度数据库的邮政编码在美国。最终,我可能会使用谷歌Map更新这一点,但我们不需要任何其他数据,在这个时候。
使用这些数据和MySQL,我试图创建一个包含适当数据的表。
https://gist.github.com/erichurst/7882666
我使用邮政编码、经度、纬度和geo_point将该表添加到PHP My Admin中
经度、纬度为DECIMAL(11,6)geo_point为POINT格式。

CREATE TABLE `obe_zipcodes` (
  `zipcode` int(11) NOT NULL,
  `longitude` decimal(12,7) NOT NULL,
  `latitude` decimal(12,7) NOT NULL,
  `geo_point` point DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
COMMIT;

这些方法都不能将一般的Decimals转换为Point,并且会给予一般的语法错误

UPDATE obe_zipcodes SET geo_point=w2.longitude FROM obe_zipcodes, obe_zipcodes w2 WHERE obe_zipcodes.zipcode = w2.zipcode

UPDATE obe_zipcodes SET geo_point=POINT(w2.longitude, w2.latitude) FROM obe_zipcodes w1, obe_zipcodes w2 WHERE w1.zipcode = w2.zipcode
czq61nw1

czq61nw11#

比我想的要简单,

UPDATE obe_zipcodes SET geo_point = POINT(latitude, longitude)

相关问题