[Qgis-developer] Vector equivalent of a VRT
Zoltan Szecsei
zoltans at geograph.co.za
Sun Oct 26 07:16:29 PDT 2014
On 2014/10/26 16:01, Zoltan Szecsei wrote:
> On 2014/10/26 15:57, Even Rouault wrote:
>> Le dimanche 26 octobre 2014 14:37:04, Zoltan Szecsei a écrit :
>>> On 2014/10/24 18:49, Andre Joost wrote:
>>>> +100 from me if you promise to build a QGIS plugin for the purpose ;-)
>>> Well, I'm not building a plugin - but rather a bash script, both to
>>> keep
>>> it simple, and to further my knowledge.
>>>
>>> So,
>>> My script is working insofar as I am getting a VRT that QGIS (v2.5.0
>>> rev
>>> b43d131 and gdal/ogr 1.11.0) loads, _but it comes in with zero
>>> elements._
>>> For guidance I am using http://www.gdal.org/drv_vrt.html
>>>
>>> I have tried wrapping each SHP file in it's own <OGRVRTLayer
>>> name:shpname>, and below is the version having a global OGRVRTLayer
>>> name.
>>>
>>>> <OGRVRTDataSource>
>>>>
>>>> <OGRVRTLayer name="River">
>>>> <SrcDataSource>ESRI
>>>>
>>>> Shapefile:2730/2730_RIVER_LINE_2006_06.shp</SrcDataSource>
>>>>
>>>> <relativeToVRT>1</relativeToVRT>
>>>>
>>>> <SrcLayer>2730_RIVER_LINE_2006_06</SrcLayer>
>>>>
>>>> <ExtentXMin>30.000000</ExtentXMin>
>>>> <ExtentYMin>-28.000037</ExtentYMin>
>>>> <ExtentXMax>31.000000</ExtentXMax>
>>>> <ExtentYMax>-27.000000</ExtentYMax>
>>>> <SrcDataSource>ESRI
>>>>
>>>> Shapefile:2731/2731_RIVER_LINE_2006_04.shp</SrcDataSource>
>>>>
>>>> <relativeToVRT>1</relativeToVRT>
>>>>
>>>> <SrcLayer>2731_RIVER_LINE_2006_04</SrcLayer>
>>>>
>>>> <ExtentXMin>31.000000</ExtentXMin>
>>>> <ExtentYMin>-28.000000</ExtentYMin>
>>>> <ExtentXMax>32.250000</ExtentXMax>
>>>> <ExtentYMax>-27.000000</ExtentYMax>
>>>> <SrcDataSource>ESRI
>>>>
>>>> Shapefile:2732/2732_RIVER_LINE_2006_04.shp</SrcDataSource>
>>>>
>>>> <relativeToVRT>1</relativeToVRT>
>>>>
>>>> <SrcLayer>2732_RIVER_LINE_2006_04</SrcLayer>
>>>>
>>>> <ExtentXMin>32.000000</ExtentXMin>
>>>> <ExtentYMin>-28.000000</ExtentYMin>
>>>> <ExtentXMax>32.819133</ExtentXMax>
>>>> <ExtentYMax>-27.000000</ExtentYMax>
>>>> </OGRVRTLayer>
>>>>
>>>> </OGRVRTDataSource>
>>> Can someone please give me some pointers as to what is incorrect or
>>> missing in my VRT file?
>> You need to encapsulate the 3 layers in a OGRVRTUnionLayer. A single
>> OVRTVRTLayer can only have a single SrcDataSource. And you need to put
>> directly the file name, without the "ESRI Shapefile:" prefix.
>>
>> From the doc :
>> """Example: Union layer (GDAL >= 1.10.0)
>> The following example will return a layer that is the concatenation of
>> source1.shp and source2.shp.
>>
>> <OGRVRTDataSource>
>> <OGRVRTUnionLayer name="unionLayer">
>> <OGRVRTLayer name="source1">
>> <SrcDataSource>source1.shp</SrcDataSource>
>> </OGRVRTLayer>
>> <OGRVRTLayer name="source2">
>> <SrcDataSource>source2.shp</SrcDataSource>
>> </OGRVRTLayer>
>> </OGRVRTUnionLayer>
>> </OGRVRTDataSource>
>> """
>>
>> You don't need to specify the Extent generally.
>
I still get no syntax errors on opening the VRT, and no features either.
Could it be the 'slashes' in the filename? I would have thought they'd
be OK because they are in double-quotes:
<OGRVRTDataSource>
<OGRVRTUnionLayer name="Rivers">
<OGRVRTLayer name="2730_RIVER_LINE_2006_06">
<SrcDataSource>2730/2730_RIVER_LINE_2006_06.shp</SrcDataSource>
</OGRVRTLayer>
<OGRVRTLayer name="2731_RIVER_LINE_2006_04">
<SrcDataSource>2731/2731_RIVER_LINE_2006_04.shp</SrcDataSource>
</OGRVRTLayer>
<OGRVRTLayer name="2732_RIVER_LINE_2006_04">
<SrcDataSource>2732/2732_RIVER_LINE_2006_04.shp</SrcDataSource>
</OGRVRTLayer>
</OGRVRTUnionLayer>
</OGRVRTDataSource>
Regards,
Zoltan
--
===========================================
Zoltan Szecsei PrGISc [PGP0031]
Geograph (Pty) Ltd.
GIS and Photogrammetric Services
P.O. Box 7, Muizenberg 7950, South Africa.
Mobile: +27-83-6004028
Fax: +27-86-6115323 www.geograph.co.za
===========================================
More information about the Qgis-developer
mailing list