使用phsql2shp命令从Postgres导出形状文件时,名称映射不起作用

问题描述 投票:0回答:1

我正在使用Linux上的PostGIS软件包中的phsql2shp从PostgreSQL数据库中导出shapefile(在Windows上使用WSL)。我正在使用-m参数指定一个映射文件。问题是映射似乎不起作用。例如,这是我正在执行的命令:

#dump_data.sh
pgsql2shp -kf shapefile.shp -m mappings.txt -h host_ip \
-u shema_name -P password db_name \
"SELECT * FROM table_name limit 10"

这就是我正在使用的mapping.txt文件:

#mapping.txt
play PlayDesign \n
play_section AcrIdent \n

生成的Shapefile具有以下列名称:

enter image description here

由于某种原因,第一个映射成功,但是第二个映射不成功,应该是AcrIdent not“ play_secti”

我怀疑这与EOL(行尾)方案有关。我已将CRLF文件的Visual Studio代码设置为mapping.txt

Note:理想情况下,我想为结果列指定一个超过10个字符的名称,但这似乎是ShapeFiles的限制

linux postgis phsql2shp
1个回答
0
投票

奇怪的是,似乎只有postresql字段名称的前10个字符与第一列相对应。 “ PlayDesign”确实有效,因为它恰好是10个字符;无法识别“ play_section”,因为它与“ play_secti”相对应。

更奇怪的是,相同的映射确实适用于shp2pgsql。

我认为它可能被认为是错误。无论如何,解决方法是仅在第一列中写入字段名称的前10个字符(如果它与另一个字段的名称不冲突。)

© www.soinside.com 2019 - 2024. All rights reserved.