我正在尝试使用 OGR 从带有 python 的 WFS 源中读取功能并将它们放入 PostgreSQL 数据库中。要开始阅读迭代中的功能,我首先获取第一个功能,然后再进入遍历所有功能的 while 循环:
layer.ResetReading()
feat = layer.GetNextFeature()
if not feat:
self.log("error", "Kon niet naar de eerste feature in %s gaan." % layer.GetName())
else:
if feat.GetFID():
self.sourcelist.append(feat.GetFID())
print ("\n%s : Source feature met dit nummer toevoegen aan %s" % (str(i),uitnaam), end = '\r' )
该层存在。我什至可以从中获取 ogr.layer.GetLayerDefn() ,我用它在执行这段代码之前在 postgresql 中创建字段。这一切都适用于大多数 WFS 服务和层,但是,对于某些 WFS 层,无法读取任何特征。它不报告错误,只是没有功能。当我使用浏览器使用相同的 srs 和 bbox 发出请求时,它确实会生成一个功能列表。我真的不明白为什么这适用于我使用的大多数 wfs 服务的大多数层,而对于某些它却不起作用?我试图用 ogr2ogr 控制台应用程序来实现相同的目标。对于在我的程序中不起作用的层,它返回一个错误:
ERROR 1: srsDimension = 4 not supported
有人知道这里发生了什么吗?