[GIS] Translating latitude and longitude into “polar coordinates” around a point

coordinate systemcoordinatesmathematics

Times Square in New York City has the coordinates (as per Google Maps):

40.7589, -73.9851

The Barrymore Theater has the coordinates (again, as per Google maps):

40.7601, -73.9862

Given that latitude and longitude are not rectilinear coordinates, how should I translate the coordinates for the Barrymore Theater into a radius from Times Square and an angle relative to due north? These would be like polar coordinates, with Times Square as the pole and due north as 0º.

I know that the Cartesian-to-Polar transformation is

radius = sqrt(x^2 + y^2)
angle  = tanh(y / x)

Is this a suitable approximation if I just plug in latitude and longitude for x and y? At what distance scale would it start to break down, and how badly?

Best Answer

Your cartesian to polar transformation would be valid after first projecting all your dataset in an azimuthal equidistant projection centered on your point of interest. You can find all details on this projection on Wikipedia

If you work directly from lat and long, you could use:

tan(azimuth) = cos(lat)sin(long-long_0)/{cos(lat_0)sin(lat)-sin(lat_0)cos(lat)cos(long-long_0)}