QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
TileMath.h File Reference
#include <QtCore/QDebug>
#include <QtCore/QHashFunctions>
#include <QtCore/QMetaType>
#include <QtCore/QPointF>
#include <QtPositioning/QGeoCoordinate>
+ Include dependency graph for TileMath.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TileMath::TileKey
 

Namespaces

namespace  TileMath
 

Functions

size_t TileMath::qHash (const TileKey &key, size_t seed=0)
 
QDebug TileMath::operator<< (QDebug debug, const TileKey &key)
 Streams as slippy "zoom/x/y" notation for logging.
 
double TileMath::worldSize ()
 Full mercator world extent (2*pi*R) in world meters.
 
bool TileMath::isValidKey (const TileKey &key)
 True if zoom is within [kMinZoom, kMaxZoom] and x/y address a tile at that zoom.
 
QPointF TileMath::geoToWorld (const QGeoCoordinate &coord)
 Geo -> world meters. Latitude is clamped to +/-kMaxLatitude.
 
QGeoCoordinate TileMath::worldToGeo (const QPointF &world)
 World meters -> geo (altitude 0)
 
double TileMath::mercatorScale (double latitude)
 
double TileMath::tileSpanAtZoom (int zoom)
 Edge length of one tile at zoom, in world meters.
 
QPointF TileMath::tileMinCorner (const TileKey &key)
 South-west (minimum x/y) corner of a tile in world meters.
 
TileKey TileMath::tileForWorld (const QPointF &world, int zoom)
 Tile containing a world point. World coordinates are clamped to the world extent.
 
double TileMath::metersPerPixelAtZoom (int zoom)
 World meters spanned by one pixel of a kTilePixels tile at zoom (equator)
 
int TileMath::zoomForMetersPerPixel (double metersPerPixel)
 Smallest zoom whose resolution is at least as fine as metersPerPixel (clamped to valid range)
 

Variables

constexpr double TileMath::kEarthRadius = 6378137.0
 WGS84 equatorial radius (m)
 
constexpr double TileMath::kMaxLatitude = 85.05112878
 Mercator latitude clamp (deg)
 
constexpr int TileMath::kMinZoom = 0
 
constexpr int TileMath::kMaxZoom = 23
 
constexpr int TileMath::kTilePixels = 256
 Nominal tile edge used for meters-per-pixel.