J’ai posté récemment sur l’utilisation du fournisseur FDO OGR pour accéder aux données stockées dans PostgreSQL/PostGIS.
Comme l’architecture ouverte de FDO permet à tous de créer un fournisseur, Mateusz Loskot a développé un fournisseur FDO natif pour PostgreSQL/PostGIS pour un projet commun entre Refractions Research et la ville de Nanaimo .
Ce fournisseur est actuellement en version alpha, et est très prometteur.
La marche à suivre pour son installation est décrite ici.
Comme ce document est en anglais, je vais reprendre ci dessous son contenu, pour une installation dans AutoCAD Map 3D 2008.
1. Téléchargez le fournisseur FDO
Le lien pour télécharger le fournisseur est donner dans la section Download à cette URL :
http://trac.osgeo.org/fdo/wiki/FdoPostGISNotes
Le fichier a télécharger est un fichier ZIP (nommé fdopostgis_323_alpha_3317a.zip au moment de la rédaction de ce billet).
Vous pouvez aussi décider de compiler vous même le fournisseur à partir des sources disponibles dans le référentiel SubVersion de l’OSGeo.
2. Installer le fournisseur FDO pour PostGIS
Dans le fichier ZIP, vous trouverez deux répertoires : Logged et NotLogged.
Chacun de ces répertoires contient les mêmes 3 fichiers
DLL :
Dans le répertoire Logged, les DLL génèrent un fichier de log.
Dans le répertoire NotLogged, les DLL ne génèrent pas de fichier de log.
- Copiez les trois dll d’un de ces répertoires dans le répertoire FDO\Bin d’AutoCAD Map 3D 2008. Par défaut, ce répertoire est : C:\Program Files\AutoCAD Map 3D 2008\FDO\bin
- Modifiez le fichier providers.xml pour y ajouter les lignes suivantes :
<FeatureProvider>
<Name>OSGeo.PostGIS.3.2</Name>
<DisplayName>OSGeo FDO Provider for PostGIS</DisplayName>
<Description>FDO Provider for PostGIS</Description>
<IsManaged>False</IsManaged>
<Version>3.2.0.0</Version>
<FeatureDataObjectsVersion>3.2.0.0</FeatureDataObjectsVersion>
<LibraryPath>.\PostGISProvider.dll</LibraryPath>
</FeatureProvider>
3. Ajoutez le chemin du répertoire bin de PostgreSQL au Path System de votre machine.
- Dans ma configuration, ce répertoire est : C:\Program Files\PostgreSQL\8.2\bin
OU
- Si vous ne souhaitez pas utiliser ce fournisseur PostGIS sur le serveur où PostGIS est installé, vous pouvez aussi copier les DLL PostgreSQL nécessaire à la connexion dans le répertoire FDO\Bin d’AutoCAD Map 3D 2008. Vous pouvez utilisez l’outil Depends sur la DLL libpq.dll pour savoir quelle autre DLL devait être copiée dans ce répertoire. Dans ma configuration, j’ai du copier les DLL suivantes :
4. Connectez AutoCAD Map 3D 2008 à PostGIS
- Lancez Map 3D 2008 (relancez le s’il était déjà ouvert).
- Dans le volet Tâches, cliquez sur le bouton Données du gestionnaire d’affichage, puis sur Connexion aux données :
- Vous pouvez maintenant ajouter une connexion PostGIS :
- Remplissez les paramètres de connexion :
Les paramètres sont les suivants :
Username : nom de l’utilisateur PostgreSQL
Password : mot de passe de l’utilisateur PostgreSQL
Service : Information de connexion à PostgreSQL sous le format database@host:port
host est optionnel si vous êtes sur la même machine.
port est optionnel si vous utilisez le port par défaut (5432)
DataStore : le schéma PostgreSQL qui contient les données.
Cliquez sur "Connecter".
5. Ajoutez la table PostGIS
Cochez la ou les tables que vous souhaitez chargez, puis cliquer sur
"Ajouter à la carte" (ou sur "Ajouter à la carte avec une requête" si
vous souhaitez filter les données à afficher dans AutoCAD Map) :
6. Et voilà !
Quelques remarques :
- Ce fournisseur est actuellement en version alpha.
- Pour une utilisation dans AutoCAD Map 3D, la version actuelle ne semble pas supporter l’édition des données (ni alphanumérique, ni géographique). Mais il est bien prévu que la version finale le supporte.
- Les tests se font sur PostgreSQL 8.2 et PostGIS 1.3.1. Pour ma part, j’ai utilisé PostgreSQL 8.2.4-1 et PostGIS 1.2.1-1
- Ce fournisseur n’est pour l’instant que disponible pour Windows. Si vous souhaitez aider à créer la build Linux, la communauté vous accueillera à bras ouverts ! 🙂
- Les tables spatiales doivent être dans la table geometry_columns.
- Ce fournisseur ne supporte actuellement que des identifiants en minuscules (poour la base, les tables, les colonnes)
- Si vous souhaitez utiliser ce fournisseur avec MapGuide, rappelez vous que MapGuide nécessite une clé primaire, sinon aucune propriété ne s’affichera lors de la sélection d’un objet.
- Il faut lancer VACUUM ANALYSE régulièrement sur vos tables spatiales si vous souhaitez qu’elles fonctionnent correctement
- Enfin, ce fournisseur n’étant pas supporté par Autodesk :
- si vous rencontrez des problèmes, posez vos questions sur la mailing list fdo-users
- si vous pensez avoir trouvé un bug, suivez les instructions sur la page de soumission de bugs.
- Alternativement, vous pouvez aussi poser vos questions dans les commentaires de ce blog, ou dans le forum Autodesk_SIG de Georezo. J’y répondrais dans la mesure du possible.
Edit du 26 mai 2008 : un nouveau build du fournisseur est disponible, et Jacques a donné quelques conseils supplémentaires dans les commentaires d’un autre post.