我已经摘录了Erik Westra(亚马逊链接)撰写的一本超级邪恶的书“ Python Geospatial Development” ,并且正在研究中。目前,它正在教我将GSHHS海岸线数据从shapefile加载到PostGIS数据库中,以准备构建地理空间Web应用程序。
我的问题是:当我尝试将GSHHS数据导入PostGIS时,由于海岸线多边形不被视为“有效”而被拒绝。具体来说,我收到一条错误消息,将某些(而非全部)海岸线多边形描述为“非封闭环”。
我知道此错误试图告诉我多边形的第一个点和最后一个点不相同。但是,这根本不是事实。我已经检查了许多多边形的WKT表示形式,它们是正确的。它们肯定以相同的坐标开始和结束。
使用OGR库从shapefile中提取多边形,并将每个多边形要素导出到WKT。我尝试通过Shapely重构多边形,并尝试使用WKB,但无济于事。我已经能够在同一数据加载到PostGIS的作为MULTIPOLYGON表,使用shp2pgsql装载机。
我想知道那里是否有人:
(a)也许使用同一本书,陷入同样的问题,并且对我有答案?
(b)遇到类似问题,并找到解决方案?
(c)否,是否有一些“最佳实践”建议,以确保在装入PostGIS之前确保有效的几何图形?
更新:一位同事建议,“非闭合环”问题可能只是另一个问题的征兆。我的PostGIS / PostgreSQL配置可能有大小限制(关于插入事务,接收到的数据包,文本字符串等)。
由于我将很长的WKT多边形用作输入,因此PostGIS可能为时过早,无法允许每个多边形完成切割。我明天将对其进行测试,但听起来确实有可能。我插入的国家边界只是接受一些记录,而不接受其他记录。从内存来看,可接受的几何形状适用于像安提瓜这样的小岛国(因此可能具有较短的WKT表示形式)。
因此,这最终可能更多是PostGIS数据库管理线程,而不是无效的几何线程。