我想更新我的数据集,并使用GEOMETRY数据类型而不是使用纬度和经度。问题是我已经在我的表中设置了一个地理列的数据类型,但我不能把我的数据放进去。如何设置它的值?我搜索了其他问题,所有问题都使用文本,我想从JSON转换。
ugmeyewa1#
如果你的表当前有一个包含纬度和经度的JSON列,你可以这样使用:
tbl
| ID| json点|新点|| --|--|--|| 1 |{“纬度”:“51.5072”,“经度”:“0.1276”}||
UPDATE tbl SET new_point = POINT(json_point->>'$.longitude', json_point->>'$.latitude');
字符串如果json_point包含JSON数组:| ID| json点|新点|| --|--|--|| 1 |[0.1276,51.5072]||你可以更新:
UPDATE tbl SET new_point = POINT(json_point->'$[0]', json_point->'$[1]');
型
5lhxktic2#
要更新字段,我们需要遵循这种格式,首先我们创建一个具有类型和坐标的JSON,然后将其转换为GEO。另外,请注意坐标是JSON数组的格式。下面是Point类型和(5, 1)坐标示例ST_GeomFromGeoJSON(JSON_OBJECT('type', 'Point', 'coordinates', JSON_ARRAY(5, 10)))个
Point
(5, 1)
ST_GeomFromGeoJSON(JSON_OBJECT('type', 'Point', 'coordinates', JSON_ARRAY(5, 10)))
2条答案
按热度按时间ugmeyewa1#
如果你的表当前有一个包含纬度和经度的JSON列,你可以这样使用:
tbl
| ID| json点|新点|
| --|--|--|
| 1 |{“纬度”:“51.5072”,“经度”:“0.1276”}||
字符串
如果json_point包含JSON数组:
| ID| json点|新点|
| --|--|--|
| 1 |[0.1276,51.5072]||
你可以更新:
型
5lhxktic2#
要更新字段,我们需要遵循这种格式,首先我们创建一个具有类型和坐标的JSON,然后将其转换为GEO。另外,请注意坐标是JSON数组的格式。
下面是
Point
类型和(5, 1)
坐标示例ST_GeomFromGeoJSON(JSON_OBJECT('type', 'Point', 'coordinates', JSON_ARRAY(5, 10)))
个