Drexel dragonThe Math ForumDonate to the Math Forum

Ask Dr. Math - Questions and Answers from our Archives
_____________________________________________
Associated Topics || Dr. Math Home || Search Dr. Math
_____________________________________________

Finding the Center of Three Latitude/Longitude Points

Date: 07/27/2005 at 11:56:24
From: Stanley
Subject: Determing center point in Lat/Long based on 3 given points

Dr. Math,

I need help with a latitude/longitude formula.  If I have 3 known 
points (lat/long), how do I get the center point in 
latitude/longitude coordinates?

Location 1: Lat  38.714642  Long -90.256857
Location 2: Lat  41.143586  Long -96.238873
Location 3: Lat  38.942661  Long -90.892235

What would the center point coordinates formula be in Lat/Long format?



Date: 07/28/2005 at 22:01:47
From: Doctor Rick
Subject: Re: Determing center point in Lat/Long based on 3 given points

Hi, Stanley. 

That's an interesting problem!  I don't have a formula offhand, but I
can see a way to derive one.

The three points lie on a "small circle" on the globe, and you want 
the center of this circle.  The small circle is the intersection of 
the sphere with the plane containing the three points.  The center of 
the circle is on the line through the center of the sphere and 
perpendicular to the plane.  This line is perpendicular to any line in 
the plane through the point.

Thus, all we need to do is to construct the lines from point 1 to 
point 2 and from point 1 to point 3, and then construct the line that 
is perpendicular to both of them.  Its direction can tell us the 
latitude and longitude of the center of the small circle.

This is best done using vector algebra.  If the three points are A, B, 
and C, we view them as vectors from the center of the sphere to the 
three points respectively.  The cross-product of vectors B-A and C-A, 
(B-A)x(C-A), is the vector we seek.

First we must convert the latitudes and longitudes to 3-dimensional 
cartesian coordinates on a sphere of radius 1, using the 
transformation

  x = cos(lon)*cos(lat)
  y = sin(lon)*cos(lat)
  z = sin(lat)

Now I'll call the three points in Cartesian space (x1, y1, z1), (x2, 
y2, z2), and (x3, y3, z3).  The cross-product is

  N = (B-A)x(C-A)
    = (x2-x1, y2-y1, z2-z1) x (x3-x1, y3-y1, z3-z1)
    = ((y2-y1)(z3-z1)-(z2-z1)(y3-y1),
       (z2-z1)(x3-x1)-(x2-x1)(z3-z1),
       (x2-x1)(y3-y1)-(y2-y1)(x3-x1))

Next we convert N back to latitude and longitude.  Its length is not 
1, as the vectors A, B, and C were, so we will need to calculate its 
length:

  r = sqrt(xn^2 + yn^2 + zn^2)

where xn, yn, and zn are the coordinates of N. Finally, the latitude 
and longitude of the center are

  latc = arcsin(zn/r)
  lonc = arctan(yn/xn)

To get it right, we should use the atan2() function provided by many 
programming languages to determine which of two possible longitudes 
with the same tangent is the correct one.  Also, not only the center 
of the small circle but its antipode (the opposite point on the earth) 
correspond to vectors perpendicular to the plane of the small circle; 
both can be viewed as centers of the small circle.  To get the correct 
one, order the points A, B, and C so that they are counterclockwise 
around the center you want.

I know this isn't a simple formula on the order of those for distance 
or bearing between two points.  It is instead an algorithm with 
several steps.  But all the necessary parts are here.  I hope you can 
implement it.  Let me know if anything doesn't work; I have not 
checked my work carefully, I'll be depending on you for that.

- Doctor Rick, The Math Forum
  http://mathforum.org/dr.math/ 



Date: 08/08/2005 at 17:38:04
From: Stanley
Subject: Determing center point in Lat/Long based on 3 given points

Doctor Rick,

Thank you for responding with such great detail.  Your solution is
very nice!

- Stanley
Associated Topics:
College Higher-Dimensional Geometry

Search the Dr. Math Library:


Find items containing (put spaces between keywords):
 
Click only once for faster results:

[ Choose "whole words" when searching for a word like age.]

all keywords, in any order at least one, that exact phrase
parts of words whole words

Submit your own question to Dr. Math

[Privacy Policy] [Terms of Use]

_____________________________________
Math Forum Home || Math Library || Quick Reference || Math Forum Search
_____________________________________

Ask Dr. MathTM
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/