如何将GeoJSON多边形插入PostGIS表中?

哈维尔

我是postgis的新手,我不知道为什么在将mulipolygon插入数据库时​​,该值为空。

我正在将postgressql与postgis插件一起使用。

我使用以下代码创建表: CREATE TABLE IF NOT EXISTS countries ( table_id SERIAL, properties jsonb not null, geom geometry(GeometryZ,4326), primary key (table_id));

我读了一个文件,然后按功能插入。所有不是multipolygon的要素都可以很好地插入,但是当我尝试插入multipolygon时,插入的值为空。

我试着插入这个例子,它的工作原理是:

INSERT INTO test ( properties, geom ) VALUES ( '{"name":"Argentina"}', ST_Force3D(ST_SetSRID(ST_GeomFromGeoJSON('{ 
  "type": "MultiPolygon",
  "coordinates": 
    [[[[-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25]]],
    [[[-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25]],
    [[-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25], [-66.45, -55.25]]]]
}'), 4326) ) );

但是,当我尝试从文件中插入实值时,请插入一个空值,但我不知道为什么。

INSERT INTO test ( properties, geom ) VALUES ( '{"name":"Argentina"}', ST_Force3D(ST_SetSRID(ST_GeomFromGeoJSON('{ 
  "type": "MultiPolygon",
  "coordinates": [[[ [-65.5, -55.2],[-66.45, -55.25],[-66.95992, -54.89681],[-67.56244, -54.87001],[-68.63335, -54.8695],[-68.63401, -52.63637],[-68.25, -53.1],[-67.75, -53.85],[-66.45, -54.45],[-65.05, -54.7],[-65.5, -55.2]]],[[[-64.964892,-22.075862],[-64.377021,-22.798091],[-63.986838,-21.993644],[-62.846468,-22.034985],[-62.685057,-22.249029],[-60.846565,-23.880713],[-60.028966,-24.032796],[-58.807128,-24.771459],[-57.777217,-25.16234],[-57.63366,-25.603657],[-58.618174,-27.123719],[-57.60976,-27.395899],[-56.486702,-27.548499],[-55.695846,-27.387837],[-54.788795,-26.621786],[-54.625291,-25.739255],[-54.13005,-25.547639],[-53.628349,-26.124865],[-53.648735,-26.923473],[-54.490725,-27.474757],[-55.162286,-27.881915],[-56.2909,-28.852761],[-57.625133,-30.216295],[-57.874937,-31.016556],[-58.14244,-32.044504],[-58.132648,-33.040567],[-58.349611,-33.263189],[-58.427074,-33.909454],[-58.495442,-34.43149],[-57.22583,-35.288027],[-57.362359,-35.97739],[-56.737487,-36.413126],[-56.788285,-36.901572],[-57.749157,-38.183871],[-59.231857,-38.72022],[-61.237445,-38.928425],[-62.335957,-38.827707],[-62.125763,-39.424105],[-62.330531,-40.172586],[-62.145994,-40.676897],[-62.745803,-41.028761],[-63.770495,-41.166789],[-64.73209,-40.802677],[-65.118035,-41.064315],[-64.978561,-42.058001],[-64.303408,-42.359016],[-63.755948,-42.043687],[-63.458059,-42.563138],[-64.378804,-42.873558],[-65.181804,-43.495381],[-65.328823,-44.501366],[-65.565269,-45.036786],[-66.509966,-45.039628],[-67.293794,-45.551896],[-67.580546,-46.301773],[-66.597066,-47.033925],[-65.641027,-47.236135],[-65.985088,-48.133289],[-67.166179,-48.697337],[-67.816088,-49.869669],[-68.728745,-50.264218],[-69.138539,-50.73251],[-68.815561,-51.771104],[-68.149995,-52.349983],[-68.571545,-52.299444],[-69.498362,-52.142761],[-71.914804,-52.009022],[-72.329404,-51.425956],[-72.309974,-50.67701],[-72.975747,-50.74145],[-73.328051,-50.378785],[-73.415436,-49.318436],[-72.648247,-48.878618],[-72.331161,-48.244238],[-72.447355,-47.738533],[-71.917258,-46.884838],[-71.552009,-45.560733],[-71.659316,-44.973689],[-71.222779,-44.784243],[-71.329801,-44.407522],[-71.793623,-44.207172],[-71.464056,-43.787611],[-71.915424,-43.408565],[-72.148898,-42.254888],[-71.746804,-42.051386],[-71.915734,-40.832339],[-71.680761,-39.808164],[-71.413517,-38.916022],[-70.814664,-38.552995],[-71.118625,-37.576827],[-71.121881,-36.658124],[-70.364769,-36.005089],[-70.388049,-35.169688],[-69.817309,-34.193571],[-69.814777,-33.273886],[-70.074399,-33.09121],[-70.535069,-31.36501],[-69.919008,-30.336339],[-70.01355,-29.367923],[-69.65613,-28.459141],[-69.001235,-27.521214],[-68.295542,-26.89934],[-68.5948,-26.506909],[-68.386001,-26.185016],[-68.417653,-24.518555],[-67.328443,-24.025303],[-66.985234,-22.986349],[-67.106674,-22.735925],[-66.273339,-21.83231],[-64.964892,-22.075862] ]]]}},
}'), 4326) ) );

这是文件:https : //pastebin.com/MRcQDV5s

编辑:

有用!

此功能运行完美。

CREATE TABLE IF NOT EXISTS test ( table_id SERIAL, properties jsonb not null, geom geometry(GeometryZ,4326), primary key (table_id))

INSERT INTO test ( properties, geom ) VALUES ( '" + property + "', ST_Force3D(ST_SetSRID(ST_GeomFromGeoJSON('" + geometry + "'), 4326) ));

每种不同的类型都可以完美地存储。

问题是pgAdmin版本不显示数据库中的数据。

JGH

该示例几何是无效的,因此其与任何PostGIS功能的(不)可用性不可信。

忽略Z组件,表中的列为简单多边形,而输入为多多边形。根据您的需求,您有两种选择

1)更改表定义,以便它可以存储多面并使用当前查询填充它(geometry(MultiPolygonZ,4326)

2)保留当前表的定义,但将多部分拆分为单个部分。也就是说,如果源多边形具有3个部分,则它将在表中创建3个记录。使用st_dump此。

INSERT INTO test ( properties, geom ) 
VALUES ( '{"name":"Argentina"}', 
ST_Force3D(
  (ST_DUMP(
    ST_SetSRID( 
        ST_GeomFromGeoJSON('{...}'),
    4326)
  )).geom ) 
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Java JDBC PreparedStatement占位符将GeoJSON多边形插入PostGIS?

来自分类Dev

Rails并将多边形数据(geojson)插入postgis表

来自分类Dev

Rails并将多边形数据(geojson)插入postgis表

来自分类Dev

如何在Postgis中检测其他(许多)多边形内的多边形

来自分类Dev

如何简化和消除GeoJSON多边形中的重叠

来自分类Dev

如何将某些区域均匀地调整为多边形(扩展多边形)?

来自分类Dev

如何将多边形划分为子多边形并为其分配 id

来自分类Dev

如何将 wkt 形式的多边形列表转换为多多边形?

来自分类Dev

在Rails中将PostGIS多边形转换为GeoJSON

来自分类Dev

如何将经纬度映射到R中多边形/ shapefile的最近点

来自分类Dev

如何将数据库中存储的多边形绘制到Google地图上

来自分类Dev

使用 geojson 和 mongoose 将多边形坐标插入 Mongo DB 时出错

来自分类Dev

如何从 geojson 文件中获取多边形的坐标并从中挤出 3D 多边形?

来自分类Dev

在Postgis中为多边形值创建表格并插入

来自分类Dev

如何通过纬度和经度(Postgis)从表中选择多边形

来自分类Dev

从 PostGiS 中同一个表的文本字段创建多边形几何

来自分类Dev

多边形的无效GeoJSON

来自分类Dev

如何在MySQL数据库中插入多边形并检查传递的多边形是否在其中?

来自分类Dev

使用PostGIS将点转换为多边形

来自分类Dev

从d3.js中的GeoJson多边形获取每个多边形的质心

来自分类Dev

如何将在一行中触摸自己的多边形转换为有效的多边形?

来自分类Dev

Postgis-如何简化多边形的起点

来自分类Dev

Postgis-如何简化多边形的起点

来自分类Dev

在PostGIS中的地图视图边界内查询多边形

来自分类Dev

在PostGIS中查找包含点的所有多边形

来自分类Dev

从PostGIS中的BBOX坐标创建多边形几何

来自分类Dev

如何在保存在MongoDB中的geoJson中查找多边形

来自分类Dev

如何访问重叠的geojson /多边形以显示在信息框中

来自分类Dev

如何在MongoDB中保存的geoJson中查找多边形

Related 相关文章

  1. 1

    如何使用Java JDBC PreparedStatement占位符将GeoJSON多边形插入PostGIS?

  2. 2

    Rails并将多边形数据(geojson)插入postgis表

  3. 3

    Rails并将多边形数据(geojson)插入postgis表

  4. 4

    如何在Postgis中检测其他(许多)多边形内的多边形

  5. 5

    如何简化和消除GeoJSON多边形中的重叠

  6. 6

    如何将某些区域均匀地调整为多边形(扩展多边形)?

  7. 7

    如何将多边形划分为子多边形并为其分配 id

  8. 8

    如何将 wkt 形式的多边形列表转换为多多边形?

  9. 9

    在Rails中将PostGIS多边形转换为GeoJSON

  10. 10

    如何将经纬度映射到R中多边形/ shapefile的最近点

  11. 11

    如何将数据库中存储的多边形绘制到Google地图上

  12. 12

    使用 geojson 和 mongoose 将多边形坐标插入 Mongo DB 时出错

  13. 13

    如何从 geojson 文件中获取多边形的坐标并从中挤出 3D 多边形?

  14. 14

    在Postgis中为多边形值创建表格并插入

  15. 15

    如何通过纬度和经度(Postgis)从表中选择多边形

  16. 16

    从 PostGiS 中同一个表的文本字段创建多边形几何

  17. 17

    多边形的无效GeoJSON

  18. 18

    如何在MySQL数据库中插入多边形并检查传递的多边形是否在其中?

  19. 19

    使用PostGIS将点转换为多边形

  20. 20

    从d3.js中的GeoJson多边形获取每个多边形的质心

  21. 21

    如何将在一行中触摸自己的多边形转换为有效的多边形?

  22. 22

    Postgis-如何简化多边形的起点

  23. 23

    Postgis-如何简化多边形的起点

  24. 24

    在PostGIS中的地图视图边界内查询多边形

  25. 25

    在PostGIS中查找包含点的所有多边形

  26. 26

    从PostGIS中的BBOX坐标创建多边形几何

  27. 27

    如何在保存在MongoDB中的geoJson中查找多边形

  28. 28

    如何访问重叠的geojson /多边形以显示在信息框中

  29. 29

    如何在MongoDB中保存的geoJson中查找多边形

热门标签

归档