ArcGIS et les types spatiaux de Microsoft

Les géodatabases prennent en charge le stockage de données vectorielles à l'aide des types de géométrie et de géographie de Microsoft. Ces types sont disponibles dans SQL Server ; leur utilisation ne nécessite aucune installation distincte. Utilisez par exemple ces types de données si vous souhaitez accéder à vos données spatiales à l'aide de SQL.

Le type de géométrie de Microsoft est similaire aux types des données spatiales SIG existants : il utilise des coordonnées dans un plan arbitraire, tel que les projections définies.

Le type de géographie de Microsoft est utilisé pour des données sur un ellipsoïde, stockées avec des coordonnées de latitude et de longitude.

Les deux types diffèrent dans leur façon d'effectuer des calculs spatiaux. Pour plus d'informations sur les types spatiaux de Microsoft, reportez-vous à la documentation de SQL Server.

Utiliser les mots-clés de configuration pour spécifier des types spatiaux Microsoft

Par défaut, les géodatabases dans SQL Server utilisent le type de géométrie de Microsoft. Si vous souhaitez utiliser le type de géographie de Microsoft pour le stockage dans les géodatabases, dans les bases de données SQL Server sur site, vous devez (1) définir le paramètre GEOMETRY_STORAGE du mot-clé de configuration DEFAULTS dans la table SDE_dbtune sur GEOGRAPHY ou (2) spécifier, lors de la création d'une classe d'entités, un mot-clé de configuration définissant le paramètre GEOMETRY_STORAGE sur GEOGRAPHY.

Vous ne devez modifier le paramètre GEOMETRY_STORAGE du mot-clé DEFAULTS que si la plupart des utilisateurs utilisent essentiellement la géographie pour leurs données. Si une partie seulement de vos données est stockée avec le type géographie, désignez un mot-clé distinct lors de la création de la classe d'entités. Un mot-clé vous est proposé : GEOGRAPHY, ce qui ne vous empêche pas de créer votre propre mot-clé.

Inscription d'une table spatiale existe dans la géodatabase

Si vous avez créé des tables contenant des colonnes géométriques ou géographiques de Microsoft à l'aide d'une application tierce ou SQL, vous pouvez inscrire ces tables auprès de la géodatabase pour bénéficier des fonctionnalités de géodatabase, telles que des classes de relations, une topologie, des réseaux géométriques, des ateliers cadastraux, des MNT ou des structures, ou qu'elle doive comporter des sous-types, des valeurs par défaut, des domaines ou des règles de validation. A cet effet, chaque table doit remplir certaines conditions préalables :

Pour plus d'informations sur l'inscription de la table auprès de la géodatabase dans ArcGIS for Desktop, reportez-vous à la rubrique Enregistrement d'une table avec la géodatabase.

Création d'un index spatial

Pour que SQL Server crée un index spatial, il est essentiel que la table comporte une clé primaire.

...dans ArcGIS

Lors de la création, à l'aide d'ArcGIS, d'une classe d'entités avec une colonne de géométrie ou de géographie, ArcGIS crée par défaut une clé primaire groupée dans la colonne ID d'enregistrement (ObjectID) de la table métier, puis crée un index spatial à partir des valeurs définies pour le paramètre B_MS_SPINDEX du mot-clé de configuration de la table SDE_dbtune utilisée lors de la création de la classe d'entités. Lorsque la classe d'entités est inscrite comme versionnée, une clé primaire groupée est créée sur les colonnes ID d'enregistrement et ID d'état de la table des ajouts et l'index spatial est créé à partir des valeurs définies pour A_MS_SPINDEX dans le mot-clé de configuration utilisé lors de la création de la classe d'entités. La valeur par défaut pour ces deux paramètres est la suivante :

GRIDS = (MEDIUM, MEDIUM, MEDIUM, MEDIUM), CELLS_PER_OBJECT = 16

Pour plus d'informations sur la définition des valeurs dans la table SDE_dbtune, reportez-vous à la rubrique Modification du contenu de la table DBTUNE.

En outre, lors de la création d'une classe d'entités avec une colonne spatiale de type géométrie ou géographie à l'aide d'ArcGIS, l'emprise de la classe d'entités est calculée comme l'étendue des données à indexer. Toutes les entités situées à l'extérieur de cette plage ne sont pas indexées mais sont renvoyées dans les requêtes spatiales. Si la classe d'entités n'est pas définie, la plage maximale des coordonnées du système de référence spatiale de la classe d'entités est utilisée pour l'emprise. Dès le basculement de la couche du mode E/S de chargement seul au mode E/S normal, l'emprise s'ajuste sur l'étendue la plus récente. Vous pouvez également définir ou recalculer l'étendue des classes d'entités à partir de l'onglet Etendue de l'entité de la boîte de dialogue Propriétés de la classe d'entités.

...en-dehors d'ArcGIS

Pour les tables spatiales créées en dehors d'ArcGIS (par exemple celles créées à l'aide de SQL), vous devez créer une clé primaire sur la table et créer un index spatial à l'aide de SQL. Voici la syntaxe SQL pour la création d'un index spatial sur une table contenant une colonne de type géométrie ou géographie :

CREATE SPATIAL INDEX <index_name>
ON <table> (<spatial column>)
USING GEOMETRY_GRID
WITH (
BOUNDING_BOX = minx,miny,maxx,maxy),
GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high), 
CELLS_PER_OBJECT = n,
<other regular btree index options like filegroups, fill factors, etc>
)

Limites connues de l'utilisation de géographie SQL Server avec une géodatabase d'entreprise

La liste suivante indique les points à prendre en compte lors du stockage de données de géographie SQL Server dans votre géodatabase d'entreprise :

9/12/2013