首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加MultiPolygon几何时出现语法错误

添加MultiPolygon几何时出现语法错误
EN

Stack Overflow用户
提问于 2019-03-08 22:44:32
回答 2查看 462关注 0票数 0

我尝试在postgre数据库中添加MultiPolygon几何图形,因此我使用以下SQL语句:

代码语言:javascript
复制
'INSERT INTO potentiel_foncier_ccry (nature, geom, nbr_lgmt)  VALUES  ('+ mysql.escape(nature)+', ST_GeomFromText(MULTIPOLYGON((("'+mysql.escape(geom)+')))",2154),"'+ mysql.escape(logement) +'")'

但是它失败了,我有这个错误:

代码语言:javascript
复制
error: syntax error at end of input

我的几何体如下所示:

有什么问题吗?提前谢谢你

PS:我使用Nodejs进行编码

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-08 23:48:55

如果您通过OpenLayers应用程序执行此操作,则可以转换格式

代码语言:javascript
复制
var geom = [[[[101, 201],
              [102, 202],
              [103, 203],
              [101, 201]]]];

var wkt = new ol.format.WKT().writeGeometry(new ol.geom.MultiPolygon(geom));

console.log(wkt);  // 'MULTIPOLYGON(((101 201,102 202,103 203,101 201)))'

假设SQL的其余部分是正确的,那么仍然需要ST_GeomFromText2154

代码语言:javascript
复制
var geom1 = [[[[101, 201],
               [102, 202],
               [103, 203],
               [101, 201]]]];

var wkt = new ol.format.WKT().writeGeometry(new ol.geom.MultiPolygon(geom1));

var geom2 = "ST_GeomFromText('" + wkt + "'),2154)"

 'INSERT INTO potentiel_foncier_ccry (nature, geom, nbr_lgmt) VALUES ('+ mysql.escape(nature)+', '+geom2+','+ mysql.escape(logement) +')'
票数 1
EN

Stack Overflow用户

发布于 2019-03-08 23:28:13

(仍然没有什么名气来评论)看看postgis examples,MultiPolygon应该看起来像这样(只有圆括号):

SELECT ST_GeomFromText('MULTIPOLYGON(((-71.1031880899493 42.3152774590236,-71.1031627617667 42.3152960829043,-71.102923838298 42.3149156848307,-71.1023097974109 42.3151969047397,-71.10147384934248,-71.102505233663 42.3144722937587,-71.10277487471 42.3141658254797,-71.103113945163 42.3142739188902,-71.10324876416 42.31402489987,-71.1033002961013 42.3140393340215,-71.1033488797549 42.3139495090772,-71.103396240451 42.313832439557,-71.1041521907712 42.31402489987,-72.3141153348029,29-71.1041411411543 42.3141545014533,-71.1041287795912 42.3142114839058,-71.1041188134329 42.3142693656241,-71.1041112482575 42.3143272556118,-71.1041072845732 42.3143851580048,-71.1041057218871 42.3144430686681,-71.1041065602059 42.3145009876017,-71.1041097995362 42.3145589148055,-71.1041166403905 42.3146168544148,-71.1041258822717 42.3146748022936,-71.1041375307579 42.314318674446,-71.1041492906949 42.3147711126569,-71.1041598612795 42.314808175739,-71.1041575307579 42.314318674446-71.1041173835118 42.3150739481917,-71.1040809891419 42.3151344119048,-71.1040438678912 42.3151191367447,-71.1040194562988 42.3151832057859,-71.1038734225584 42.3151140942995,-71.1038446938243 42.3151006300338,-71.1038315271889 42.315094347535,-71.1037393329282 42.315054824985,-71.1035447555574 42.3152608696313,-71.1033436658644 42.3151648370544,-71.1032580383161 42.3152269126061,-71.103223066939 42.3152517403219,-71.1031880899493 42.3152774590236),(-71.1033632495842.3152774590236)-71.1043583974082 42.3151211109857,-71.1043443253471 42.3150676015829,-71.1043850704575 42.3150793250568,-71.1043632495873 42.315113108546)‘,4326);

你确定是mysql.escape(geom)创建了这个语法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55065553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档