Le format Virtuel d’OGR est un pilote qui transforme les objets lu à partir d’autres pilotes sur des critères définie dans un fichier de contrôle XML. Il est d’abord utilisé pour profiter des couches spatiales provenant de tables à plat avec des informations spatiales dans des colonnes attributaires. Il peut être également utilisé pour associer des information de système de coordonnées avec une source de données, merger des couches de sources de données différentes dans une seule source de données, ou même juste fournir un fichier de soutient pour l’accès à une source de données pas sous forme de fichier.
Les fichiers virtuel sont pour l’instant normalement préparés à la main.
Avant GDAL 1.7.0, le pilote VRT d’OGR était en lecture seule.
Depuis GDAL 1.7.0, les opération CreateFeature(), SetFeature() et DeleteFeature() sont gérées sur la couche d’un jeu de données VRT, si les conditions suivantes sont remplies :
L’élément racine d’un fichier de contrôle XML est OGRVRTDataSource. il a un enfant OGRVRTLayer pour chaque couche dans la source de données virtuelle. Cet élément doit avoir un attribut name avec le nom de la couche, et peut avoir les sous-éléments suivants :
Dans l’exemple suivant (disease.ovf) la mauvaise table à partir de la base de données ODBC DISEASE est utilisée pour créer une couche spatiale. Le fichier virtuel utilise les colonnes “x” et “y” pour obtenir la localisation spatiale. La couche est également définie comme une couche point, et comme étant dans le système de coordonnées WGS84.
<OGRVRTDataSource>
<OGRVRTLayer name="worms">
<SrcDataSource>ODBC:DISEASE,worms</SrcDataSource>
<SrcLayer>worms</SrcLayer>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="x" y="y"/>
</OGRVRTLayer>
</OGRVRTDataSource>
Il peut être utile dans certaines circonstance de pouvoir renommer les noms des champs à partir d’une couche source en un nom différent. Cela est particulièrement vrai quand on veut traduire vers un format dont les schéma est imposé, tel que le format GPX (<name>, <desc>, etc.). Cela peut être accomplit en utilisant SQL de cette manière :
<OGRVRTDataSource>
<OGRVRTLayer name="remapped_layer">
<SrcDataSource>your_source.shp</SrcDataSource>
<SrcSQL>SELECT src_field_1 AS name, src_field_2 AS desc FROM your_source_layer_name</SrcSQL>
</OGRVRTLayer>
</OGRVRTDataSource>
Cela peut aussi être accomplie (à partir de GDAL 1.7.0) en utilisant des définitions de champs explicites :
<OGRVRTDataSource>
<OGRVRTLayer name="remapped_layer">
<SrcDataSource>your_source.shp</SrcDataSource>
<SrcLayer>your_source</SrcSQL>
<Field name="name" src="src_field_1" />
<Field name="desc" src="src_field_2" type="String" width="45" />
</OGRVRTLayer>
</OGRVRTDataSource>
L’exemple suivant retournera seulement les features à partir de la couche source qui intersecte la région (0,40)-(10,50). De plus, les géométries retournées seront découpées pour correspondre à cette région.
<OGRVRTDataSource>
<OGRVRTLayer name="source">
<SrcDataSource>source.shp</SrcDataSource>
<SrcRegion clip="true">POLYGON((0 40,10 40,10 50,0 50,0 40))</SrcRegion>
</OGRVRTLayer>
</OGRVRTDataSource>