Alex Hope O'Connor
Alex Hope O'Connor

Reputation: 9724

SQL Server Geography Point

I have recently been researching the SQL Server spatial data types and have decided to try and store my long, lat points in a geography field.

However I cannot figure out how to insert the data into the field, I have tried using stuff like "POINT(double, double), 0" and weird stuff like that, but no success.

Also im curious as to what the purpose of the ID argument specified in the geography functions.

Thanks, Alex.

Upvotes: 1

Views: 2239

Answers (2)

Nathan Johnson
Nathan Johnson

Reputation: 3

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

Notice: Lat and Long are the other way around, compared to the POINT syntax above.

Upvotes: 0

Oded
Oded

Reputation: 499382

Have you looked at the examples from MSDN?

From 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

And from Point:

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

Upvotes: 2

Related Questions