locked
Triangulation of a position from three known points RRS feed

  • Question

  • Let's say I have three records in a database table with a known location in a geography column.

    For ease of explanation let's say they're Houston, Seattle and New York.

    Within the table is a field which has an integer distance value and the distance is miles from, say, Las Vegas.

    Las Vegas isn't a known point in the database.  Is there a way I can triangulate the coordinate of Las Vegas from the three known coordinates and their distance values?

    Friday, October 10, 2014 10:01 PM

Answers

  • Your description of the problem defines it as trilateration (http://en.wikipedia.org/wiki/Trilateration ) rather than triangulation. Based on that description/diagram, you should be able to accomplish this by:

    1. Using STBuffer or BufferWithCurves to buffer each point using its appropriate distance in meters.
    2. Use STIntersection to find the intersection of the buffers (A/B, B/C, A/C).
    3. Find the intersection of the three geography instances described in step 2.
    4. Use EnvelopeCenter to get a "center" point of the geography instance from step 3.

    Don't forget, when you use buffer against a geography type (step 1), the distance need to be specified in meters, not miles. Meters is the unit of measure unless you're using a strange SRID (consult sys.spatial_reference_systems for your SRID).

    Hope this helps, Bob

     
    Monday, October 13, 2014 9:48 PM

All replies

  • Let's say I have three records in a database table with a known location in a geography column.

    For ease of explanation let's say they're Houston, Seattle and New York.

    Within the table is a field which has an integer distance value and the distance is miles from, say, Las Vegas.

    Las Vegas isn't a known point in the database.  Is there a way I can triangulate the coordinate of Las Vegas from the three known coordinates and their distance values?

    Friday, October 10, 2014 9:48 PM
  • I don't think the LasVegas's coordinate  can be reached from the three known coordinates and their distance values.
    Monday, October 13, 2014 12:44 PM
  • Your description of the problem defines it as trilateration (http://en.wikipedia.org/wiki/Trilateration ) rather than triangulation. Based on that description/diagram, you should be able to accomplish this by:

    1. Using STBuffer or BufferWithCurves to buffer each point using its appropriate distance in meters.
    2. Use STIntersection to find the intersection of the buffers (A/B, B/C, A/C).
    3. Find the intersection of the three geography instances described in step 2.
    4. Use EnvelopeCenter to get a "center" point of the geography instance from step 3.

    Don't forget, when you use buffer against a geography type (step 1), the distance need to be specified in meters, not miles. Meters is the unit of measure unless you're using a strange SRID (consult sys.spatial_reference_systems for your SRID).

    Hope this helps, Bob

     
    Monday, October 13, 2014 9:48 PM
  • Bob,

    This has been very useful.  Many thanks.

    Wednesday, October 15, 2014 3:42 PM