Streaming ogr2ogr中的VSI文件API支持
在ogr2ogr中,对流式输入的支持似乎很弱。例如,我为什么可以这样做:Streaming ogr2ogr中的VSI文件API支持,streaming,geojson,ogr,Streaming,Geojson,Ogr,在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:/
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.
您使用的是什么版本的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/
如果您对早期的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/