如何根据 JSON_ARRAY 的坐标在 MySQL 中设置 GEOMETRY

问题描述 投票:0回答:2

我想更新我的数据集并使用 GEOMETRY 数据类型而不是使用纬度和经度。问题是我已经在表中使用数据类型设置了一个地理列,但我无法将数据放入其中。如何设置它的值?

我搜索了其他问题,所有问题都使用文本,我想从 JSON 进行转换。

mysql database geography
2个回答
1
投票

你的问题不清楚。如果您的表当前有一个包含纬度和经度的 JSON 列,您可以使用如下所示的内容:

待定

id json_point 新点
1 {“纬度”:“51.5072”,“经度”:“0.1276”}
UPDATE tbl SET new_point = POINT(json_point->>'$.longitude', json_point->>'$.latitude');

如果 json_point 包含 JSON 数组:

id json_point 新点
1 [0.1276, 51.5072]

您可以更新:

UPDATE tbl SET new_point = POINT(json_point->'$[0]', json_point->'$[1]');

-1
投票

要更新字段,我们需要遵循这个格式 首先我们创建一个具有类型和坐标的 JSON,然后将其转换为 GEO。另请注意,坐标采用 JSON 数组的格式。

这里是

Point
类型和
(5, 1)

坐标的示例

ST_GeomFromGeoJSON(JSON_OBJECT('type', 'Point', 'coordinates', JSON_ARRAY(5, 10)))

© www.soinside.com 2019 - 2024. All rights reserved.