Partager via


Créer, construire et interroger des instances geography

Le type de données spatiales géographiques, geography, représente des données dans un système de coordonnées de monde sphérique. Ce type est implémenté en tant que type de données CLR (Common Language Runtime) .NET dans SQL Server. Le type de données SQL Server geography stocke des données ellipsoïdales, telles que des coordonnées de latitude et de longitude GPS.

Le type geography est prédéfini et disponible dans chaque base de données. Vous pouvez créer des colonnes de table de type geography et opérer sur les données geography comme vous le feriez avec d'autres types fournis par le système.

Dans cette rubrique

  • Création ou construction d'une nouvelle instance geography

    • Création d'une nouvelle instance geography à partir d'une instance existante

    • Construction d'une instance geography à partir d'une entrée WKT (Well-Known Text)

    • Construction d'une instance geography à partir d'une entrée WKB (Well-Known Binary)

    • Construction d'une instance geography à partir d'une entrée texte GML

  • Renvoi de données WKT et WKB à partir d'une instance geography

  • Interrogation des propriétés et des comportements des instances geography

    • Informations sur la validité, le type d'instance et GeometryCollection

    • Nombre de points

    • Dimension

    • Vide

    • Fermeture

    • ID de référence spatial (SRID)

  • Détermination de relations entre des instances geography

  • Les instances geography doivent utiliser un SRID pris en charge

  • Exemples

[Haut de la page]

Création ou construction d'une nouvelle instance geography

Création d'une nouvelle instance geography à partir d'une instance existante

Le type de données geography fournit de nombreuses méthodes intégrées que vous pouvez utiliser pour créer des instances geography basées sur des instances existantes.

Construction d'une instance geography à partir d'une entrée WKT (Well-Known Text)

Le type de données geography fournit plusieurs méthodes intégrées qui génèrent une géographie à partir de la représentation WKT OGC (Open Geospatial Consortium). La norme WKT est une chaîne de texte qui autorise l'échange de données geography sous forme textuelle.

Construction d'une instance geography à partir d'une entrée WKB (Well-Known Binary)

WKB est un format binaire spécifié par l'OGC qui autorise l'échange de données de Geography entre une application cliente et une base de données SQL. Les fonctions suivantes acceptent l'entrée WKB pour construire des instances geography :

Construction d'une instance geography à partir d'une entrée texte GML

Le type de données geography fournit une méthode qui génère une instance geography à partir de GML, une représentation XML d'une instance geography. SQL Server prend en charge un sous-ensemble de GML.

Pour plus d'informations sur le langage GML (Geography Markup Language), consultez la spécification OGC : OGC Specifications, Geography Markup Language (en anglais).

Renvoi de données WKT et WKB à partir d'une instance geography

Vous pouvez utiliser les méthodes suivantes pour retourner le format WKT ou WKB d'une instance geography :

Interrogation des propriétés et des comportements des instances geography

Toutes les instances geography ont plusieurs propriétés qui peuvent être extraites par le biais des méthodes fournies par SQL Server. Les rubriques suivantes définissent les propriétés et comportements de types géographiques et les méthodes permettant de les interroger.

Informations sur la validité, le type d'instance et GeometryCollection

Une fois qu'une instance geography est construite, vous pouvez utiliser les méthodes suivantes pour retourner le type d'instance ou, s'il s'agit d'une instance GeometryCollection, retourner une instance geography spécifique.

Nombre de points

Toutes les instances geography non vides sont constituées de points. Ces points représentent les coordonnées de latitude et de longitude du monde sur lequel les instances geography sont dessinées. Le type de données geography fournit de nombreuses méthodes intégrées pour interroger les points d'une instance.

Dimension

Une instance geography non vide peut avoir 0, 1 ou 2 dimensions. Les instances geography à zéro dimension, telles que Point et MultiPoint, n'ont aucune longueur ou surface. Les objets unidimensionnels, tels que LineString, CircularString, CompoundCurve et MultiLineString, ont une longueur. Les instances à deux dimensions, telles que Polygon, CurvePolygon et MultiPolygon, ont une surface et une longueur. Les instances vides indiquent une dimension de -1 et une GeometryCollection indique la dimension maximale de son contenu.

Vide

Une instance geography vide n'a pas de points. La longueur des instances LineString, CircularString, CompoundCurve et MultiLineString vides est 0. La surface des instances Polygon, CurvePolygon et MultiPolygon vides est 0.

Fermeture

Une instance geography fermée est un graphique dont les points de départ et de terminaison sont les mêmes. Les instances Polygon sont considérées comme fermées. Les instances Point ne sont pas fermées.

Un anneau est une instance LineString simple et fermée.

ID de référence spatial (SRID)

L'ID de référence spatial (SRID) est un identificateur spécifiant dans quel système de coordonnées ellipsoïde l'instance geography est représentée. Deux instances geography avec différents SRID ne peuvent pas être comparées.

Cette propriété peut être modifiée.

Détermination de relations entre des instances geography

Le type de données geography fournit de nombreuses méthodes intégrées que vous pouvez utiliser pour déterminer les relations entre deux instances geography.

Les instances geography doivent utiliser un SRID pris en charge

SQL Server prend en charge les SRID basés sur les normes EPSG. Un SRID SQL Server pris en charge pour les instances geography doit être utilisé lors de l'exécution de calculs ou de l'utilisation de méthodes avec des données spatiales géographiques. Le SRID doit correspondre à l'un des SRID répertoriés dans l'affichage catalogue sys.spatial_reference_systems. Comme mentionné précédemment, lorsque vous effectuez des calculs sur vos données spatiales à l'aide du type de données geography, vos résultats dépendront de l'ellipsoïde utilisée dans la création de vos données, car un identificateur de référence spatiale (SRID) spécifique est assigné à chaque ellipsoïde.

SQL Server utilise le SRID par défaut de 4326, qui mappe au système de référence spatiale WGS 84, lors de l'utilisation de méthodes sur des instances geography. Si vous utilisez des données d'un système de référence spatiale autre que WGS 84 (ou SRID 4326), vous devrez déterminer le SRID spécifique pour vos données spatiales geography.

Exemples

Les exemples suivants montrent comment ajouter et interroger des données geography.

  • Le premier exemple crée une table avec une colonne d'identité et une colonne geography GeogCol1. Une troisième colonne restitue la colonne geography dans sa représentation OGC (Open Geospatial Consortium) WKT (Well-Known Text) et utilise la méthode STAsText(). Deux lignes sont ensuite insérées : une ligne contient une instance LineString de geography et une ligne contient une instance Polygon.

    IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL 
        DROP TABLE dbo.SpatialTable;
    GO
    
    CREATE TABLE SpatialTable 
        ( id int IDENTITY (1,1),
        GeogCol1 geography, 
        GeogCol2 AS GeogCol1.STAsText() );
    GO
    
    INSERT INTO SpatialTable (GeogCol1)
    VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326));
    
    INSERT INTO SpatialTable (GeogCol1)
    VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));
    GO
    
  • Le deuxième exemple utilise la méthode STIntersection() pour retourner les points où les deux instances geography précédemment insérées se croisent.

    DECLARE @geog1 geography;
    DECLARE @geog2 geography;
    DECLARE @result geography;
    
    SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
    SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
    SELECT @result = @geog1.STIntersection(@geog2);
    SELECT @result.STAsText();
    

Voir aussi

Concepts

Données spatiales (SQL Server)