none
Adding distance to a latitude , longitude point

    Question

  • Hi,

     

    I have a latitude / longitude point. I would like to add 100 feet distance from the x,y coordinate.  It does not matter the direction.

    Is there a way to do this?

     

    thanks,

     

    Friday, April 09, 2010 2:14 PM

Answers

  • 100 feet = 30.48 meters, which is the unit of measure that SRID 4326 uses.  So, to "draw a circle" around your point that is 100' in radius, resulting in a polygon, you would use STBuffer().

    declare @yourPoint geography = 'POINT(-83.0 45.0)'  -- SRID 4326 will be implied

    declare @newPolygon geography = @yourPoint.STBuffer(30.48)

     

     

    Friday, April 09, 2010 2:52 PM
  • Similar thread can be found at

    http://social.msdn.microsoft.com/Forums/en-US/sqlspatial/thread/10829142-b6ae-4aca-aec6-4764d191e516/#2512833f-717d-44c3-812f-04d37ad2ec07

     

    Some "non-MS spatial" functions for this and other purposes can be found at

    http://williams.best.vwh.net/avform.htm

     

    If you really want to stick with just MS spatial functions, I wonder if it would be possible to create a 1 mile buffer as Jason showed and create an artificial line going from your point to some fixed point like the north pole.  Would the intersection of the line and the circle produce the point the desired distance on a course straight north?

    declare @point2 geography = geography::Point(40, -90, 4326)

    declare @newPolygon2 geography = @point2.STBuffer(30.48)
    select @newPolygon2 as bufferedpoly

    declare @line2 geography = geography::STGeomFromText('LINESTRING (-90 40, -90 90)', 4326)
    select @line2 as line

    select @line2.STIntersection(@newPolygon2).STPointN(2).STAsText()

    --POINT (-90 40.000275925283745)

    Saturday, April 10, 2010 1:37 AM

All replies

  • 100 feet = 30.48 meters, which is the unit of measure that SRID 4326 uses.  So, to "draw a circle" around your point that is 100' in radius, resulting in a polygon, you would use STBuffer().

    declare @yourPoint geography = 'POINT(-83.0 45.0)'  -- SRID 4326 will be implied

    declare @newPolygon geography = @yourPoint.STBuffer(30.48)

     

     

    Friday, April 09, 2010 2:52 PM
  • Similar thread can be found at

    http://social.msdn.microsoft.com/Forums/en-US/sqlspatial/thread/10829142-b6ae-4aca-aec6-4764d191e516/#2512833f-717d-44c3-812f-04d37ad2ec07

     

    Some "non-MS spatial" functions for this and other purposes can be found at

    http://williams.best.vwh.net/avform.htm

     

    If you really want to stick with just MS spatial functions, I wonder if it would be possible to create a 1 mile buffer as Jason showed and create an artificial line going from your point to some fixed point like the north pole.  Would the intersection of the line and the circle produce the point the desired distance on a course straight north?

    declare @point2 geography = geography::Point(40, -90, 4326)

    declare @newPolygon2 geography = @point2.STBuffer(30.48)
    select @newPolygon2 as bufferedpoly

    declare @line2 geography = geography::STGeomFromText('LINESTRING (-90 40, -90 90)', 4326)
    select @line2 as line

    select @line2.STIntersection(@newPolygon2).STPointN(2).STAsText()

    --POINT (-90 40.000275925283745)

    Saturday, April 10, 2010 1:37 AM