OGR gère en option la lecture de fichier .mdb des Géodatabases Personnelles via ODBC. Les Géodatabases Personnelles sont une base de données Microsoft Access(r) avec un ensemble de tables définies par ESRI pour prendre en compte les méta-données de la géodatabase, et avec des géométries pour les objets contenu dans une colonne BLOB dans un format personnalisé (essentiellement des fragments de géométries de Shapefile). Ces pilotes accèdent aux géodatabases personnelles via ODBC, mais ne dépend d’aucuns middleware d’ESRI.
Les Géodatabases Personnelles sont accédées en passant le nom du fichier .mdb pour être accédé comme source de données. Sous Windows, aucun DSN d’ODBC n’est nécessaire. Sous Linux, il y a un problème avec des connexions sans DSN dû à une implémentation incomplète ou bugguée de cette fonctionnalité dans le paquet MDB Tools. Il est donc nécessaire de configurer un Data Source Name (DSN) si le pilote MDB Tools est utilisé (vérifiez les instructions ci-dessous).
Dans le but de faciliter la compatibilité avec différentes configurations, l’option de configuration PGEO_DRIVER_TEMPLATE a été ajouté pour fournir une façon pour définir par programmation le DSN avec le nom du fichier comme argument. Dans le cas où le nom du pilote est connu, cela permet la construction de DSN basé sur cette information d’une manière identique à celle par défaut (utilisé pour Windows access pour le pilote Microsoft Access).
OGR traite toutes les tables de géométrie comme des couches. La plupart des géométries devraient être gérée, données 3D incluses. Les informations de mesure seront ignorées. Les informations du système de coordonnées devraient être proprement associées aux couches.
Pour l’instant, le pilote de Géodatabase Personnelle d’OGR ne se sert pas des index spatiaux pour accélérer les requêtes spatiales, bien que cela puisse être ajouté dans le futur.
Par défaut, les commandes SQL sont envoyées directement au moteur de base de données MDB. Il est également possible de demander au pilote de prendre en charge les commandes SQL avec le moteur SQL dans OGR, en définissant la chaine OGRSQL à la méthode ExecuteSQL(), comme nom du dialecte SQL.
À partir de GDAL/OGR 1.9.0, le pilote Access MDB databases est une autre façon de lire les fichiers .mdb géodatabase personnelle d’ESRI sans nécessité unixODBC et les outils MDB.
Cet article donne les explications étape par étape pour utiliser OGR avec le paquet unixODBC et pour accéder aux Géodatabases Personnelles avec le pilote PGeo.
(sur Ubuntu 8.04 : sudo apt-get install unixodbc libmdbodbc)
Il y a deux fichiers de configuration pour unixODBC :
Le format des fichiers de configuration est très simple :
[section_name]
entry1 = value
entry2 = value
Pour plus de détails, référez-vous au manuel d’unixODBC.
D’abord , vous devez configurer le pilote ODBC pour accéder aux bases de données Microsoft Access(r) avec MDB Tools. Ajoutez la définition suivante à votre fichier odbcinst.ini.
[Microsoft Access Driver (*.mdb)]
Description = MDB Tools ODBC drivers
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage = 1
CPTimeout =
CPReuse =
Dans cette section, on utilise ‘sample.mdb’ comme nom de la géodatabase personnelle, remplacez la avec le nom de votre propre base de données.
Créez un fichier .odbc.ini dans votre répertoire HOME :
$ touch ~/.odbc.ini
Placez-y la définition de la source de données ODBC suivante dans ce fichier :
[sample_pgeo]
Description = Sample PGeo Database
Driver = Microsoft Access Driver (*.mdb)
Database = /home/mloskot/data/sample.mdb
Host = localhost
Port = 1360
User = mloskot
Password =
Trace = Yes
TraceFile = /home/mloskot/odbc.log
Explication étape par étape d’une entrée DSN :
Maintenant vous pouvez tester l’accès à une source de données PGeo avec ogrinfo.
D’abord, vérifiez que vous avez le pilote PGeo compilé dans OGR :
$ ogrinfo --formats
Supported Formats:
ESRI Shapefile
...
PGeo
...
Maintenant vous pouvez accéder à votre Géodatabase personnelle. Comme source de données utilisez PGeo:<DSN> où <DSN> est un nom d’une entré DSN que vous avez placé dans votre fichier .odbc.ini.
ogrinfo PGeo:sample_pgeo
INFO: Open of `PGeo:sample_pgeo'
using driver `PGeo' successful.
1. ...
Après avoir lancé la commande ci-dessous, vous devez obtenir la liste des couches stockée dans votre géodatabase.
Maintenant, vous pouvez réaliser une requête pour détailler une couche particulière :
ogrinfo PGeo:sample_pgeo <layer name>
INFO: Open of `PGeo:sample_pgeo'
using driver `PGeo' successful.
Layer name: ...