ArcGIS et le type de géométrie PostGIS
PostGIS is a product from Refractions Research that can spatially enable PostgreSQL databases. PostGIS follows the Open Geospatial Consortium, Inc., Simple Features specification for SQL.
Lorsque vous utilisez le type de stockage de géométries PostGIS avec ArcGIS, tenez compte des règles suivantes :
- Vous devez utiliser le modèle de base de données PostGIS pour créer la base de données PostgreSQL que vous allez utiliser pour la géodatabase. Consultez la section "Préparation de votre base de données pour l'utilisation de la géométrie PostGIS".
- Des autorisations sur des tables PostGIS spécifiques doivent être accordées à l'utilisateur sde et à tout utilisateur qui crée des données dans la géodatabase. Consultez la section "Accord de droits de création de tables comportant des colonnes de géométrie PostGIS aux utilisateurs".
- Les classes d'entités que vous créez peuvent uniquement utiliser les références spatiales répertoriées dans la table public.spatial_ref_sys de PostGIS. Si vous spécifiez une référence spatiale qui ne figure pas dans cette table, la création de la classe d'entités échoue.
- Vous devez spécifier un mot-clé de configuration contenant le paramètre GEOMETRY_STORAGE défini sur PG_GEOMETRY pour créer une classe d'entités qui utilise le type de géométrie PostGIS.
Les sections suivantes contiennent plus d'informations sur l'utilisation du type de stockage de géométries PostGIS avec les applications ArcGIS.
Préparation de votre base de données pour l'utilisation de la géométrie PostGIS
Pour utiliser le type de géométrie PostGIS, vous devez installer PostGIS.
Installez PostGIS après avoir installé PostgreSQL.
Pour obtenir la version de PostGIS prise en charge par ArcSDE, installez le StackBuilder de PostgreSQL lorsque vous installez ce dernier. Ou consultez le site Web de PostGIS à http://www.postgis.org/download/ ou le site Web de PgFoundry à http://pgfoundry.org/ pour accéder aux fichiers à télécharger. Assurez-vous de télécharger les fichiers d'installation ou les fichiers binaires adaptés à votre système d'exploitation.
Consultez la page de configuration système requise ArcGIS Server accessible depuis la page du support technique d'ESRI pour savoir quelle version de PostGIS est prise en charge avec ArcSDE.
Lorsque vous installez PostGIS, un modèle de base de données PostGIS est créé dans le cluster de bases de données PostgreSQL. Utilisez le modèle de base de données PostGIS pour créer une base de données dans laquelle stocker votre géodatabase.
Si vous créez votre géodatabase à l'aide de l'Assistant Post-installation d'ArcSDE sous Windows, votre base de données est créée à l'aide d'un modèle autre que le modèle PostGIS. Par conséquent, pour utiliser le type de géométrie PostGIS, vous devez fermer l'assistant d'installation avant de lancer la configuration de post-installation, puis créer manuellement une base de données à l'aide du modèle PostGIS, ainsi qu'un utilisateur sde et une structure d'utilisateur sde dans la base de données. Puis, pour poursuivre les étapes de post-installation à l'aide de l'assistant, cliquez sur Personnalisé dans la première boîte de dialogue de l'assistant Post-installation, cliquez sur Suivant, puis désactivez l'option Définir l'environnement d'utilisateur SDE.
Accord de droits de création de tables comportant des colonnes de géométrie PostGIS aux utilisateurs
Lorsqu'une base de données est activée pour PostGIS, les tables geometry_columns et spatial_ref_sys sont créées dans la structure publique. Vous devez accorder au minimum les privilèges SELECT, INSERT, UPDATE et DELETE sur la table geometry_columns et SELECT sur la table spatial_ref_sys à l'utilisateur sde et à chaque utilisateur qui devra créer des données dans la géodatabase.
GRANT select, insert, update, delete ON TABLE public.geometry_columns TO <user_name>; GRANT select ON TABLE public.spatial_ref_sys TO <user_name>;
Création de classes d'entités dans une géodatabase ArcSDE pour PostgreSQL à l'aide du stockage de géométries PostGIS
Dès lors que la base de données est activée pour le stockage de géométrie PostGIS, vous pouvez créer des tables spatialisées comprenant des colonnes spatiales de type géométrie. Ces colonnes spatiales permettent l'insertion d'entités géographiques.
L'accès aux tables spatialisées par le biais d'ArcSDE peut être effectué à l'aide d'applications utilisant les outils existants du logiciel ArcGIS ou par la création d'applications utilisant l'interface de programmation d'applications (API) ArcSDE C. Un programmeur SQL averti peut également se servir des fonctions spatiales.
Création de classes d'entités à l'aide d'ArcGIS
Le type de stockage de géométries utilisé pour les classes d'entités créées à l'aide d'ArcGIS est contrôlé par un paramètre défini dans la table sde_dbtune. Il s'agit du paramètre GEOMETRY_STORAGE. Pour les géodatabases dans PostgreSQL, il peut être défini sur ST_GEOMETRY ou sur PG_GEOMETRY (le paramètre pour le type de géométrie PostGIS). Par conséquent, lorsque vous souhaitez créer à l'aide d'ArcGIS une classe d'entités utilisant le type de géométrie PostGIS, spécifiez un mot-clé de configuration contenant le paramètre GEOMETRY_STORAGE défini sur PG_GEOMETRY.
Par défaut, le type de stockage de géométrie des nouvelles classes d'entités dans une géodatabase ArcSDE pour PostgreSQL utilise le stockage ST_Geometry. Pour stocker la plupart de vos données avec les types de stockage PostGIS, définissez la valeur du paramètre GEOMETRY_STORAGE du mot-clé DEFAULTS de la table sde_dbtune sur PG_GEOMETRY. (Utilisez la commande sdedbtune pour modifier les paramètres de la table sde_dbtune. Pour plus de détails sur l'utilisation de cette commande, consultez le manuel ArcSDE Administration Command Reference.) En revanche, pour stocker une partie de vos classes d'entités seulement avec le type de stockage PostGIS, vous pouvez utiliser le mot-clé de configuration PG_GEOMETRY et le spécifier lors de la création de la classe d'entités. Dans le fichier dbtune.sde, le mot-clé PG_GEOMETRY apparaît sous la forme suivante :
##PG_GEOMETRY GEOMETRY_STORAGE "PG_GEOMETRY" UI_TEXT "User Interface text description for POSTGIS geometry storage" END
Les autres paramètres de stockage sont extraits du mot-clé DEFAULTS. Pour plus d'informations sur le stockage sde_dbtune, reportez-vous aux rubriques suivantes :
Utilisation de tables PostGIS existantes
ArcSDE peut utiliser correctement les tables contenant des colonnes de géométrie PostGIS créées par des applications externes ou à l'aide d'SQL (également nommées tables tierces) tant que chaque table respecte les conditions préalables suivantes :
- Chaque table doit appartenir à l'utilisateur qui inscrit la table.
- Chaque table doit contenir une colonne de géométrie unique.
- Les tables ne doivent pas contenir d'autres colonnes d'un type défini par l'utilisateur.
- Les tables doivent comporter un seul type de géométrie (points, lignes ou polygones), pouvant éventuellement être de type multi-parties.
- Chaque table doit contenir une colonne de nombres entiers, uniques, de valeur non NULL, appropriée comme colonne d'ID d'enregistrement inscrite.
- Chaque table doit avoir un index spatial.
Pour plus d'informations sur la création de tables avec une colonne PostGIS à l'aide de SQL, consultez la documentation PostGIS sur le site Web PostGIS.org.
Inscription de tables tierces contenant des colonnes de géométrie PostGIS
La commande d'administration ArcSDE sdelayer –o register permet d'inscrire une table comme classe d'entités. Cela signifie qu'un enregistrement est ajouté pour la table dans les tables système sde_layers, sde_table_registry et sde_geometry_columns. Des enregistrements sont également ajoutés à la table système sde_column_registry pour chaque colonne de la table.
L'exemple suivant présente l'inscription d'une table nommée properties contenant des géométries ponctuelles (–e p) dans une colonne spatiale nommée shape. La table comporte une colonne de nombres entiers nommée fid, à utiliser comme colonne d'identifiants d'entité uniques gérée par ArcSDE (–C fid,SDE).
sdelayer –o register –l properties,shape –e p -t PG_GEOMETRY –C fid,SDE -g RTREE -x 30,10,1000 –u <user> –p <pw>
Comme indiqué ci-dessus, la commande sdelayer effectue uniquement l'ajout de la table aux tables système ArcSDE. Pour activer les fonctionnalités de géodatabase d'ArcGIS Desktop, telles que la topologie, le versionnement et les réseaux, il est également nécessaire d'inscrire la table dans la géodatabase. Pour plus d'informations, reportez-vous à la rubrique Enregistrement d'une table dans la géodatabase.
Vous ne pouvez pas renommer des tables spatiales stockées à l'aide du type de géométrie PostGIS. En effet il n'existe aucune fonction PostGIS permettant d'actualiser le nom de table dans la table public.geometry_columns.
Où trouver de la documentation sur PostGIS et PostgreSQL
Vous trouverez la documentation PostGIS sur le site Web de PostGIS : http://www.postgis.org/documentation/.
Pour obtenir des informations générales sur PostgreSQL, de la documentation est disponible sur le site Web de PostgreSQL : http://www.postgresql.org/docs/.