Partager via


geography (Transact-SQL)

Le type de données spatial géographique, geography, est implémenté en tant que type de données CLR (Common Language Runtime) .NET dans SQL Server. Ce type représente des données dans un système de coordonnées de monde sphérique. 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.

SQL Server prend en charge un ensemble de méthodes pour le type de données spatial geography. Cet ensemble inclut des méthodes sur geography définies par la norme Open Geospatial Consortium (OGC) et un jeu d'extensions Microsoft de cette norme.

Pour plus d'informations sur les méthodes du type de données spatiales geography, consultez Référence de méthodes de type de données geography.

Inscription du type geography

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. Peut être utilisé dans les colonnes calculées persistantes et non persistantes.

Exemples

A.Illustration de l'ajout et de l'interrogation de données géographiques

Les exemples suivants montrent comment ajouter et interroger des données géographiques. 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

B.Retour de l'intersection de deux instances géographiques

L'exemple suivant 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();

C.Utilisation du type géographique dans une colonne calculée

L'exemple suivant crée une table avec une colonne calculée persistante à l'aide d'un type geography.

IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL 
    DROP TABLE dbo.SpatialTable;
GO

CREATE TABLE SpatialTable
(
    locationId int IDENTITY(1,1),
    location geography,
    deliveryArea as location.STBuffer(10) persisted
)

Voir aussi

Concepts

Données spatiales (SQL Server)

Autres ressources

Référence de méthodes de type de données geography