2010-11-07 30 views
1

J'ai récemment fait des recherches sur les types de données spatiales SQL Server et j'ai décidé d'essayer de stocker mes points lat, dans un champ de géographie.Point de géographie SQL Server

Cependant, je ne peux pas comprendre comment insérer les données sur le terrain, j'ai essayé d'utiliser des trucs comme "POINT (double, double), 0" et des trucs bizarres comme ça, mais pas de succès.

Également curieux de savoir à quoi sert l'argument ID spécifié dans la géographie.

Merci, Alex.

Répondre

2

Avez-vous regardé les exemples de MSDN?

De geography (Transact-SQL):

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 

Et de Point:

DECLARE @g geometry; 
SET @g = geometry::STGeomFromText('POINT (3 4)', 0); 
SET @g = geometry::Parse('POINT(3 4 7 2.5)'); 
0
DECLARE @g geography; 
SET @g = geography::Point(4, 3, 4326); 

Avis: Lat et Long sont l'inverse, par rapport à la syntaxe de point ci-dessus.