ArcGIS et le type de géométrie PostGIS
PostGIS est un produit qui spatialise des bases de données PostgreSQL. PostGIS est conforme aux spécifications SQL de l'OGC (Open Geospatial Consortium, Inc.) des entités simples pour SQL (Structured Query Language). Il utilise les représentations OGC binaires (WKB) et textuelles (WKT) de la géométrie.
PostGIS possède deux options de types spatiaux : géométrie et géographie. Seule le type de géométrie est pris en charge avec ArcGIS.
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 ou pour activer PostGIS dans la base de données. Consultez la section de cette rubrique "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.
- 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.
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. Veillez à installer une version de PostGIS prise en charge par la version d'ArcGIS que vous souhaitez utiliser.
Consultez la page des exigences du système de base de données sur le Centre de ressources ArcGIS pour connaître la version de PostGIS prise en charge avec la version d'ArcGIS que vous utilisez.
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'outil de géotraitement Créer la géodatabase d'entreprise, votre base de données est créée à l'aide d'un modèle autre que le modèle PostGIS. Par conséquent, si vous souhaitez utiliser le type de géométrie PostGIS, vous devez créer manuellement une base de données à l'aide du modèle PostGIS. Vous pouvez ensuite spécifier votre base de données existante lorsque vous exécutez l'outil de géotraitement Créer une géodatabase d'entreprise. La géodatabase sera créée à l'intérieur.
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, deux 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 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.
Vous pouvez accéder aux tables spatialisées par l'intermédiaire d'ArcGIS for Desktop ou en créant des applications à l'aide de l'interface de programmation d'applications (API) ArcSDE C. Si vous êtes un programmeur SQL expérimenté, vous pouvez également faire appel aux 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, qui peut être créé en exportant le contenu de la table sde_dbtune à l'aide de la commande sdedbtune, le mot-clé PG_GEOMETRY apparaît comme suit :
##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
ArcGIS peut utiliser les tables contenant des colonnes de géométrie PostGIS créées par des applications externes ou à l'aide de SQL (également nommées tables tierces) tant que chaque table respecte les conditions préalables suivantes :
- Chaque table doit contenir une colonne de géométrie unique. Sinon, définissez une couche de requête ou une vue incluant uniquement l'une des colonnes de géométrie.
- 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.
Inscription de tables tierces contenant des colonnes de géométrie PostGIS
Vous pouvez vous connecter à une base de données PostgreSQL qui contient des tables PostGIS d'ArcGIS for Desktop et les inscrire auprès de la géodatabase. Pour plus d'informations, reportez-vous à la rubrique Enregistrement d'une table dans la géodatabase.
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/.