Dane Springmeyer wrote:
Okay, I've got a bit closer. The right way to do this is likely a function that computes the route between two points borrowing from some of the formulas here: http://williams.best.vwh.net/avform.htm#Crs The postgis function that calculates the great circle distance is likely engineered this way, but we'll have to hear from the experts on that.

Thanks for your thorough investigation. I've just solved it! Here's my solution.

The idea is to take points on the sphere, make the line there, segmentize the line, and then transform it to the plane.

Transform(
  Segmentize(
    MakeLine(
      Transform(dp.location, 53027),
      Transform(ap.location, 53027)
    ), 4000
  ), 4326
) AS line

The 4000 is an arbitrary "distance" I conjured up. I don't really know what the units are, but 20 was too low and thrashed my server for a few minutes before I killed the process.

The problem with our previous approach was we didn't do it with segments... when the segments are reprojected, they stay more-or-less aligned along the sphere.

Thanks again. :)

Colin
_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to