How to compute the two closest points between two administrative units in a city and how this differs from distance computation? What happens when some points are on opposite/antipodal sides of the globe? How can one create equidistant points along a trajectory modelled by line segments?
We discuss solutions to those questions highlighting some of the latest developments in Boost Geometry, the library that is currently being used to provide GIS support to MySQL. The implemented algorithms are parameterized by strategies that control the accuracy-efficiency trade-off. The proposed solutions work for 3 different coordinate systems (namely, cartesian, spherical and ellipsoidal) each of which comes with its own advantages and limitations. Those are illustrated and supported by benchmarks.
The presentation is example driven thus emphasizing on the user perspective while glancing at the algorithmic and implementation aspects of the library.