Я пытаюсь сохранить «пустую» функцию с помощью openlayers (версия >= 3), например:
let defaultFeature = new ol.Feature({
geometry: new ol.geom.MultiLineString([]),
});
Как видите, это просто пустая многострочная строка, ожидающая заполнения строками.
У меня есть таблица базы данных, построенная следующим образом:
CREATE TABLE md (
id SERIAL PRIMARY KEY NOT NULL,
name varchar(40) NOT NULL,
geometry geometry(MULTILINESTRING, 3857)
);
затем я отправляю функцию в tinyows для хранения (здесь полезная нагрузка)
<Transaction
xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<Insert>
<md
xmlns="http://www.tinyows.org/">
<geometry>
<MultiLineString
xmlns="http://www.opengis.net/gml" srsName="EPSG:3857"/>
</geometry>
</md>
</Insert>
</Transaction>
но база данных выдает ошибку:
Geometry has Z dimension but column does not
После получения этой ошибки я попытался использовать параметр «opt_layout» (http://openlayers.org/en/latest/apidoc/module-ol_geom_MultiLineString-MultiLineString.html) следующим образом:
let defaultMdFeature = new ol.Feature({
geometry: new ol.geom.MultiLineString([], 'XY'),
});
и полезная нагрузка:
<Transaction
xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<Insert>
<md
xmlns="http://www.tinyows.org/">
<geometry>
<MultiLineString
xmlns="http://www.opengis.net/gml" srsName="EPSG:3857"/>
</geometry>
</md>
</Insert>
</Transaction>
К сожалению, я получаю ту же ошибку даже при указании макета.
Мой вопрос: есть ли способ сохранить пустую многострочную 2d-строку в postgis?
Спасибо заранее за вашу поддержку,
G.R.
geometry geometry(MULTILINESTRINGZ, 3857)
вместоgeometry geometry(MULTILINESTRING, 3857)
? - person Jim Jones   schedule 03.07.2018geometry(MULTILINESTRINGZ, 3857)
, но, поскольку я работаю с 2D-строкой, когда я попытался обновить многострочную строку, я получил еще одну ошибку2018-07-03 14:38:30.501 CEST [17816] ERREUR: Column has Z dimension but geometry does not
- person G. Ribeiro   schedule 03.07.20182018-07-03 14:12:25.315 CEST [9372] ERREUR: Geometry has Z dimension but column does not 2018-07-03 14:12:25.315 CEST [9372] INSTRUCTION : INSERT INTO "public"."md" ("id","geometry") VALUES ('1','01050000A0110F000000000000')
- person G. Ribeiro   schedule 03.07.2018MULTILINESTRING Z EMPTY
, который не соответствует структуре вашей таблицы -> проверьте:select st_astext('01050000A0110F000000000000') as z,st_astext('010500000000000000') as notz
- person Jim Jones   schedule 03.07.2018<MultiLineString xmlns="http://www.opengis.net/gml" srsName="EPSG:3857" srsDimension="2"/>
- person Jim Jones   schedule 03.07.2018<Transaction xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"> <Insert> <md xmlns="http://www.tinyows.org/"> <geometry> <MultiLineString xmlns="http://www.opengis.net/gml" srsName="EPSG:3857" srsDimension="2"/> </geometry> </md> </Insert> </Transaction>
с помощью httprequester и с помощьюsrsDimension="2"
- person G. Ribeiro   schedule 03.07.2018ERREUR: Geometry has Z dimension but column does not
. Может быть, проблема исходит от tinyows? - person G. Ribeiro   schedule 03.07.20182018-07-03 16:39:24.007 CEST [11456] ERREUR: Geometry has Z dimension but column does not 2018-07-03 16:39:24.007 CEST [11456] INSTRUCTION : INSERT INTO "public"."md" ("id","geometry") VALUES ('1','01050000A0110F000000000000')
все еще пытается вставить многострочную строку z - person G. Ribeiro   schedule 03.07.2018srsDimension="2"
явно указывает, что геометрия имеет только 2 измерения. Проблема может быть в другом. К сожалению, я не знаком с tinyows. - person Jim Jones   schedule 03.07.2018<gml:MultiSurface srsDimension="2" srsName="urn:x-ogc:def:crs:EPSG:3857">
. Единственное, что отличается от вашего XML, это тот факт, что этот использует пространство именgml:
, а вы не - person Jim Jones   schedule 03.07.2018