如何将GeoJSON地理数据转换为PostGIS?

时间:2019-08-29 09:23:17

标签: postgresql postgis

请告诉我如何将GeoJSON坐标转换为适用于Geometry类型列的PostGIS坐标? 我有一张表,其中包含从xml文件导入的数据及其在GeoJSON中的坐标。 我读了,读了-大致了解我需要使用什么。

UPDATE
SELECT
ST_GeomFromGeoJSON
ST_SetSRID - 4326

我可以通过这样的请求获取数据

    SELECT ST_SetSRID(ST_GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[38.1985294,55.4073349],[38.198862,55.4068537],[38.1994716,55.4055054],[38.1996559,55.4048253],[38.1997417,55.40474],[38.2006751,55.4047278],[38.2016515,55.4049654],[38.2014634,55.4057021],[38.2025811,55.4056548],[38.2045338,55.405984],[38.2039045,55.4068781],[38.2011687,55.4084618],[38.1997954,55.4081938],[38.1985294,55.4073349]]]}'),4326);

答案:

  

0103000020E6100000010000000E000000B2255069691943407D02CD8C23B44B4065355D4F74194340D8E033C813B44B408B3D0F4988194340FBACD799E7B34B400B7A14538E194340F40BC050D1B34B40DF92D2229119434007B13385CEB34B408ECFBFB8AF1943401A64DC1ECEB34B403CD862B7CF1943407B81FEE7D5B34B40A52B7D8DC919434092B5E10BEEB34B40D4A46F2DEE19434093BB197FECB34B409BF6DE292E1A43408159A148F7B34B40ED80EB8A191A4340B47AE29414B44B404ABD5DE5BF1943402855EC7948B44B4014724AE59219434009B7C6B13FB44B40B2255069691943407D02CD8C23B44B40

这似乎是我所需要的,但我不知道如何在整个表格中进行更改。

如何转换地理数据? 地理列geo_coordinates

转换后是否可以更改几何中的列类型,还是我需要创建一个新表并复制数据?

Screen of table

1 个答案:

答案 0 :(得分:1)

您应该能够只添加列并更新:

ALTER TABLE your_table
 ADD COLUMN geom geometry(Geometry,4326);

UPDATE your_table SET geom = ST_SetSRID(ST_GeomFromGeoJSON(geo_coordinates), 4326);

完成后,您可以根据需要删除geo_coordinates列。如果新列应命名为geo_coordinates,则可以在删除旧列后重命名。