为了账号安全,请及时绑定邮箱和手机立即绑定

gdaltools 将 geojson 点导出为多点

gdaltools 将 geojson 点导出为多点

慕桂英546537 2021-11-02 17:13:38
我有一些使用 gdaltools python 模块将 geojson 文件转换为 postgis 的 python 代码。ogr = gdaltools.ogr2ogr()ogr.set_encoding("UTF-8")print("Setting Input")ogr.set_input(file_name, srs="EPSG:4326")gdaltools.Wrapper.BASEPATH = os.environ['GDAL_PATH']print("Setting Conn")conn = gdaltools.PgConnectionString(host=os.environ['DB_HOST'],                                    port=os.environ['DB_PORT'],                                    dbname=os.environ['DB_NAME'],                                    user=os.environ['DB_USERNAME'],                                    password=os.environ['DB_PASSWORD'],                                    schema=str(self.table_prefix) + "_" + str(code))print("Setting Output")ogr.set_output(conn, table_name=table, srs="EPSG:27700")print("OGR Execute")ogr.execute()GeoJSON 包含类型为点的几何图形"geometry": {    "type": "Point",    "coordinates": [        -1.0600739160455448,        51.53592123798526    ]}从数据库导出数据时,我看到的是它似乎从 geojson 中的 Point 类型转换为数据库中的 Multipoint 类型。将几何图形从一个表加载到另一个表时 - 没有转换 - 我收到以下错误:Geometry type (MultiPoint) does not match column type (Point)关于 ogr2ogr 为什么从 Point 投射到 Multipoint 的任何想法?
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

实际上,该模块有一种处理这个的方法并不明显,在 pygdaltools 模块中,任何将要发送到 PostgreSQL 或 Postgis 的几何图形都会自动设置为 MULTIPOINT。要覆盖它,请添加以下代码 ogr.geom_type = 'POINT'


查看完整回答
反对 回复 2021-11-02
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您可以使用该选项 -nlt POINT

这样做会强制输出数据类型为该POINT类型,而不是MULTIPOINT您当前获得的类型。


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 392 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信