2010-11-07 2 views
1

Я недавно изучал пространственные типы данных SQL Server и решил попытаться сохранить мои длинные точки lat в области географии.Точка географии SQL Server

Однако я не могу понять, как вставлять данные в поле, я пробовал использовать такие вещи, как «POINT (double, double), 0» и такие странные вещи, но без успеха.

Также любопытно, какова цель аргумента ID, указанная в функциях географии.

Thanks, Alex.

ответ

2

Вы посмотрели примеры из MSDN?

От 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 

И от 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); 

Примечание: Lat и Long являются наоборот, по сравнению с синтаксисом POINT выше.