4

ogr2ogr 似乎对流输入的支持很弱。例如,为什么我可以这样做:

curl "http://data.usgin.org/arizona/wfs?service=WFS&version=1.1.0&
request=GetFeature&typeName=azgs:activefaults&maxFeatures=10" | 
ogr2ogr -f "KML" /vsistdout/ /vsistdin/

...但我不能这样做:

curl "http://data.usgin.org/arizona/wfs?service=WFS&version=1.1.0&
request=GetFeature&typeName=azgs:activefaults&maxFeatures=10&
outputformat=application/json" | ogr2ogr -f "KML" /vsistdout/ /vsistdin/

第一个请求对源层使用“WFS”驱动程序,第二个请求对源层使用“GeoJSON”驱动程序。第一个工作正常,但第二个给了我:

ERROR 1: GeoJSON parsing error: unexpected end of data (at offset 6000)
ERROR 4: Failed to read GeoJSON data
FAILURE:
Unable to open datasource `/vsistdin/' with the following drivers.
4

2 回答 2

1

如果您对较早的 gdal 版本或其他格式有此问题,只需添加有关 stdin 上格式的信息,例如

curl "http://data.usgin.org/arizona/wfs?service=WFS&version=1.1.0&
request=GetFeature&typeName=azgs:activefaults&maxFeatures=10&
outputformat=application/json" | ogr2ogr -f "KML" /vsistdout/ GeoJSON:/vsistdin/
于 2018-07-26T07:50:14.547 回答
0

你用的是什么版本的GDAL?这似乎已修复gdal-2.2.0,因为此命令似乎有效:

$ ogr2ogr --version
GDAL 2.2.0, released 2017/04/28

$ curl "http://data.usgin.org/arizona/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=azgs:activefaults&maxFeatures=10&outputformat=application/json" | ogr2ogr -f "KML" /vsistdout/ /vsistdin/
于 2017-06-14T20:31:31.360 回答