SQL Server地理点

时间:2010-11-07 13:44:33

标签: sql-server geospatial geography

我最近一直在研究SQL Server空间数据类型,并决定尝试在地理领域中存储我的长点数。

但是我无法弄清楚如何将数据插入到字段中,我尝试过使用像“POINT(double,double),0”这样的东西,以及类似的怪异东西,但没有成功。

也很好奇地理函数中指定的ID参数的用途是什么。

谢谢, 亚历克斯。

2 个答案:

答案 0 :(得分: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)');

答案 1 :(得分:0)

DECLARE @g geography;  
SET @g = geography::Point(4, 3, 4326);

注意:与上面的POINT语法相比,Lat和Long是另一种方式。