1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-10-06 14:53:21 +02:00

Yet another WMS bounding box computation fix

This commit is contained in:
Martin Tůma 2018-04-03 00:08:01 +02:00
parent 021558b114
commit 88d6904ded
3 changed files with 27 additions and 2 deletions

View File

@ -92,6 +92,28 @@ RectC RectC::operator&(const RectC &r) const
return tmp;
}
RectC RectC::normalized() const
{
RectC r;
if (_br.lon() < _tl.lon()) {
r._tl.setLon(_br.lon());
r._br.setLon(_tl.lon());
} else {
r._tl.setLon(_tl.lon());
r._br.setLon(_br.lon());
}
if (_br.lat() < _tl.lat()) {
r._tl.setLat(_br.lat());
r._br.setLat(_tl.lat());
} else {
r._tl.setLat(_tl.lat());
r._br.setLat(_br.lat());
}
return r;
}
void RectC::unite(const Coordinates &c)
{
if (isNull()) {

View File

@ -34,6 +34,7 @@ public:
RectC &operator&=(const RectC &r) {*this = *this & r; return *this;}
void unite(const Coordinates &c);
RectC normalized() const;
private:
Coordinates _tl, _br;

View File

@ -80,8 +80,10 @@ bool WMSMap::loadWMS()
_yx = (_setup.yx() && wms.version() >= "1.3.0") ? true : false;
_projection = wms.projection();
_boundingBox = QRectF(_projection.ll2xy(wms.boundingBox().topLeft()),
_projection.ll2xy(wms.boundingBox().bottomRight()));
RectC bb = wms.boundingBox().normalized();
_boundingBox = QRectF(_projection.ll2xy(Coordinates(bb.topLeft().lon(),
bb.bottomRight().lat())), _projection.ll2xy(Coordinates(
bb.bottomRight().lon(), bb.topLeft().lat())));
_tileLoader = TileLoader(tileUrl(wms.version()), tilesDir(),
_setup.authorization());