Search code examples
sql-servergeospatialgeography

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.


Solution

  • 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)');