Postgres / Postgis — Как вставить геометрию в postges (postgis)

#database #postgresql #geometry #postgis

#База данных #postgresql #геометрия #postgis

Вопрос:

Я хотел бы вставить это значение в свою базу данных с помощью postgres (postgis) :

 INSERT INTO test(
    id, shape)
    VALUES ('test', '<gml:LineString>
            <gml:coordinates>
                -71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
            </gml:coordinates>
        </gml:LineString>');');
 

Мой тест таблицы :

 CREATE TABLE test
(
    id character varying(32) COLLATE pg_catalog."default" NOT NULL,
    shape geometry,
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_defau<
 

источник : https://postgis.net/docs/ST_GeomFromGML.html

ОШИБКА ЖУРНАЛА :

 ERROR:  parse error - invalid geometry
LINE 3:  VALUES ('test', '
                         ^
HINT:  "
        <g" <-- parse error at position 5 within geometry
SQL state: XX000
Character: 53
 

Ответ №1:

Согласно документации, на которую вы ссылались, вы хотите:

 INSERT INTO test(id, shape)
    VALUES ('test', 
            ST_GeomFromGML('<gml:LineString>
                            <gml:coordinates>
                            -71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
                            </gml:coordinates>
                            </gml:LineString>')
     );