问题:QGIS导出空间图层为shp文件时报如下错误

Export to vector file failed.
Error: Feature write errors:
Feature creation error (OGR error: Coordinates with non-finite values are not allowed)

解决过程:
1、用QGIS 提供的“修复几何体”工具(Vector → Geometry Tools → Repair Geometry),自动修复一些常见的几何错误,包括无效坐标点。结果修复后无效,依然报上面错误。
2、排查图形数据中的非法坐标值。经排查,数据无问题,在postgis中排查SQL语句如下:

SELECT * FROM table_name WHERE 
NOT ST_IsValid(geom) OR 
ST_X(geom) IS NULL OR 
ST_Y(geom) IS NULL OR 
ST_X(geom) = 'NaN'::double precision OR 
ST_Y(geom) = 'NaN'::double precision OR 
ABS(ST_X(geom)) = 'Infinity'::double precision OR 
ABS(ST_Y(geom)) = 'Infinity'::double precision;

3、使用ST_SetSRID函数批量更新现有数据的坐标系,确保坐标系统一致。更新后,依然报上面错误。在postgis中更新坐标系SQL语句如下:

UPDATE table_name 
SET geom = ST_SetSRID(geom, 4326) 
WHERE geom IS NOT NULL;

4、通过PostGIS中的pgsql2shp工具bin\pgsql2shp.exe(打开后显示Postgis Shapfile Import/Export Manager),导出成功。windows中pgsql2shp工具打开方式如下:


结论:PostGIS中数据用QGIS导出导入有问题时,可尝试用PostGIS自带的pgsql2shp工具试试。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐