This commit is contained in:
Mathew Sutcliffe
2014-07-19 00:39:28 +01:00
parent 891bfbba28
commit 2cd664d533

View File

@@ -28,14 +28,11 @@ namespace BlackMisc
std::integral_constant<int, Count>>::type std::integral_constant<int, Count>>::type
{}; {};
//! Associative container for efficiently storing and retreiving elements at points on the Earth's surface. /*!
/* * Associative container for efficiently storing and retreiving elements at points on the Earth's surface.
We treat the Earth as a unit sphere, and convert latitude/longitude coordinates into x,y,z normal vectors. * Works by dividing the surface of the Earth into 2N^2 triangular tiles of 21600/N nautical miles each.
The x axis points to 00N00W, the y axis points to 00N90E, the z axis points to the north pole. * Each element is inserted according to which tile it falls within, and elements can later be retrieved by
* pointing to specific tiles.
We slice the Earth into N slices along lines of latitude (i.e. planes perpendicular to the z axis). Call these the z slices.
Then we further slice the Earth along planes perpendicular to the x axis and the y axis. Call these the x slices and the y slices.
Where an x slice, a y slice, and a z slice intersect on the sphere, there is a triangular tile of height 21600/2^N nautical miles.
*/ */
template <int Slices, class T, class Key = qint32> template <int Slices, class T, class Key = qint32>
class CGeodesicGrid class CGeodesicGrid