我最近一直在研究 SQL Server 空间数据类型,并决定尝试将我的长纬度点存储在地理字段中。
但是我不知道如何将数据插入到字段中,我尝试过使用“POINT(double, double), 0”之类的东西和类似的奇怪东西,但没有成功。
我也很好奇地理函数中指定的 ID 参数的用途。
谢谢,亚历克斯。
我最近一直在研究 SQL Server 空间数据类型,并决定尝试将我的长纬度点存储在地理字段中。
但是我不知道如何将数据插入到字段中,我尝试过使用“POINT(double, double), 0”之类的东西和类似的奇怪东西,但没有成功。
我也很好奇地理函数中指定的 ID 参数的用途。
谢谢,亚历克斯。
你看过 MSDN 的例子吗?
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)');
DECLARE @g geography;
SET @g = geography::Point(4, 3, 4326);
注意:与上面的 POINT 语法相比,Lat 和 Long 是相反的。