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.
Pour créer une mémoire tampon autour d'une géographie
STBuffer (type de données geography)Pour créer une mémoire tampon autour d'une géographie, en tenant compte d'une tolérance
BufferWithTolerance (type de données geography)Pour créer une géographie à partir de l'intersection de deux instances géographiques
STIntersection (type de données geography)Pour créer une géographie à partir de l'union de deux instances géographiques
STUnion (type de données geography)Pour créer une géographie à partir des points où une géographie n'en chevauche pas une autre
STDifference (type de données geography)
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.
Pour construire tout type d'instance geography à partir d'une entrée WKT
STGeomFromText (type de données geography)Pour construire une instance Point geography à partir d'une entrée WKT
STPointFromText (type de données geography)Pour construire une instance MultiPoint geography à partir d'une entrée WKT
STMPointFromText (type de données geography)Pour construire une instance LineString geography à partir d'une entrée WKT
STLineFromText (type de données geography)Pour construire une instance MultiLineString geography à partir d'une entrée WKT
STMLineFromText (type de données geography)Pour construire une instance Polygon geography à partir d'une entrée WKT
STPolyFromText (type de données geography)Pour construire une instance MultiPolygon geography à partir d'une entrée WKT
STMPolyFromText (type de données geography)Pour construire une instance GeometryCollection geography à partir d'une entrée WKT
STGeomCollFromText (type de données geography)
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 :
Pour construire tout type d'instance geography à partir d'une entrée WKB
STGeomFromWKB (type de données geography)Pour construire une instance Point geography à partir d'une entrée WKB
STPointFromWKB (type de données geography)Pour construire une instance MultiPoint geography à partir d'une entrée WKB
STMPointFromWKB (type de données geography)Pour construire une instance LineString geography à partir d'une entrée WKB
STLineFromWKB (type de données geography)Pour construire une instance MultiLineString geography à partir d'une entrée WKB
STMLineFromWKB (type de données geography)Pour construire une instance Polygon geography à partir d'une entrée WKB
STPolyFromWKB (type de données geography)Pour construire une instance MultiPolygon geography à partir d'une entrée WKB
STMPolyFromWKB (type de données geography)Pour construire une instance GeometryCollection geography à partir d'une entrée WKB
STGeomCollFromWKB (type de données geography)STGeomCollFromWKB (type de données 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).
- Pour construire tout type d'instance geography à partir d'une entrée GML
GeomFromGML (type de données geography)
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 :
Pour retourner la représentation WKT d'une instance geography
STAsText (type de données geography)Pour retourner la représentation WKT d'une instance geography incluant des valeurs Z et M
AsTextZM (type de données geography)Pour retourner la représentation WKB d'une instance geography
STAsBinary (type de données geography)Pour retourner une représentation GML d'une instance geography
AsGml (type de données 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.
Pour retourner le type d'instance d'une géographie
STGeometryType (type de données geography)Pour déterminer si une géographie est un type d'instance donné
InstanceOf (type de données geography)Pour déterminer si une instance géographique est de forme correcte pour son type d'instance
STNumGeometries (type de données geography)Pour retourner une géographie spécifique dans une instance GeometryCollection
STGeometryN (type de données geography)STGeometryN (type de données geography)
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.
Pour retourner le nombre de points qui composent une instance
STNumPoints (type de données geography)Pour retourner un point spécifique dans une instance
STPointN (type de données geometry)Pour retourner le point de départ d'une instance
STStartPoint (type de données geography)Pour retourner le point de terminaison d'une instance
STEndpoint (type de données geography)
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.
Pour retourner la dimension d'une instance
STDimension (type de données geography)Pour retourner la longueur d'une instance
STLength (type de données geography)Pour retourner la surface d'une instance
STArea (type de données geography)
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.
- Pour déterminer si une instance est vide
STIsEmpty (type de données geography)
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.
Pour déterminer si une instance est fermée
STIsClosed (type de données geography)Pour retourner le nombre d'anneaux dans une instance Polygon
NumRings (type de données geography)Pour retourner un anneau spécifié d'une instance géographique
RingN (type de données geography)
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.
- Pour définir ou retourner le SRID d'une instance
STSrid (type de données geography)
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.
Pour déterminer si deux instances comprennent le même ensemble de points
STEquals (type de données geometry)Pour déterminer si deux instances sont disjointes
STDisjoint (type de données geometry)Pour déterminer si deux instances se croisent
STIntersects (type de données geometry)Pour déterminer le ou les points où deux instances se croisent
STIntersection (type de données geography)Pour déterminer la distance la plus courte entre des points dans deux instances géographiques
STDistance (type de données geometry)Pour déterminer la différence en points entre deux instances géographiques
STDifference (type de données geography)Pour dériver la différence symétrique, ou points uniques, d'une instance geography comparée à une autre instance
STSymDifference (type de données 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();