首页 > 解决方案 > 添加 MultiPolygon 几何时的投影问题

问题描述

当我添加用户在我的地图上绘制的 MultiPolygon 几何图形时,几何图形不会显示在我绘制它的位置。它显示在不同的地方。

我将几何图形发送到我的 api,他的目标是在我的 postgre 数据库中添加几何图形。所以在我的 API 中:

var geom = req.body.geom
  var geom2 = "ST_GeomFromText('" + geom + "',2154)"
  pool.query( 'INSERT INTO potentiel_foncier_ccry (nature, geom, nbr_lgmt) VALUES ('+ mysql.escape(nature)+','+geom2+','+mysql.escape(logement)+')'

在显示我的数据的函数中:

foncier2.getSource().addFeatures(foncier2.getSource().getFormat().readFeatures(
myGeoJSON, {
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
}));
foncier2.getSource().refresh();
foncier2.getSource().changed();
map.getView().fit(foncier2.getSource().getExtent());
}

问题来自投影?在我的数据库中,我被迫将我的几何图形存储在 EPSG:2154 中。

我在这里画的例子:

我在这里画画

当我想显示它时在数据库中添加几何图形后,它显示在海面上:

![在此处输入图像描述

Ps:我使用 OpenLayer 5.3.0。

标签: javascriptnode.jspostgresqlopenlayerspostgis

解决方案


推荐阅读