
Barend Gehrels wrote:
This is indeed how it is implemented, "distance" everywhere. You can call "distance" for two points in a lat-long coordinate system and get back this great circle distance. Calling it for cartesian and you get back pythagorean distance.
Sure, but what if you would like to have both for points in a lat-long coordinate system? I.e., distance( a, b ) gives great_circle_distance, but how do I get the Euclidean distance for those same points? Both coordinate systems (lat-long, cartesian) are defined for a Euclidean space. Both spherical geometry and Euclidean geometry are applied on this Euclidean space. However, the word "distance" usually is part of the very definition of such a space. I.e., from a mathematical point of view, a coordinate system can not influence distance. Have you considered an approach looking like distance( a, b, f ); angle( a, b, f ); where f would be a functor with the minimal required mathematical operation needed to perform the required set of geometric operations? E.g., a dot- product operator? Thanks, Cheers, Rutger