javascript - 添加 MultiPolygon 几何体时出现语法错误

标签 javascript node.js postgresql geometry openlayers

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

'INSERT INTO potentiel_foncier_ccry (nature, geom, nbr_lgmt)  VALUES  ('+ mysql.escape(nature)+', ST_GeomFromText(MULTIPOLYGON((("'+mysql.escape(geom)+')))",2154),"'+ mysql.escape(logement) +'")'

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

error: syntax error at end of input

我的几何形状如下所示:

有什么问题吗?预先感谢您

PS:我使用 Nodejs 进行编码

最佳答案

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

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:

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) +')'

关于javascript - 添加 MultiPolygon 几何体时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55065553/

相关文章:

node.js - Cognito 身份验证后自定义响应

具有函数 gen_random_uuid() 的 PostgreSQL 查询不适用于 Windows

json - 选择作为 JSON 对象 {key : {}}

javascript - 使用 Ember Handlebars 有条件地向元素添加 Action

javascript - 管理 angularjs 嵌套 promise 从服务器构建响应

javascript: ReferenceError: 未定义导出

node.js - 为什么我不能使用 node-postgres 从数据库中删除?

django - 如何设置基于 Django 和 Postgresql 的 Web 应用程序的测试副本?

javascript - 加载fabric.js JSON后位置错误

javascript - 将 JSON 对象相关链接添加到可动态行