mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-01-18 19:52:09 +01:00
Fixed map resolution computation for maps > world/2
This commit is contained in:
parent
1304fd5c3c
commit
2e7f8dc341
@ -62,9 +62,17 @@ RectC Map::llBounds()
|
|||||||
|
|
||||||
qreal Map::resolution(const QRectF &rect)
|
qreal Map::resolution(const QRectF &rect)
|
||||||
{
|
{
|
||||||
qreal cy = rect.center().y();
|
/* The haversine formula used in Coordinates::distanceTo() only gives
|
||||||
QPointF cl(rect.left(), cy);
|
"half world" distances and shorter so we have to use only the center
|
||||||
QPointF cr(rect.right(), cy);
|
"half rectangle" in case e.g. world map bounds are on the input */
|
||||||
|
QRectF halfRect(QPointF(rect.left() + (rect.width() / 4.0),
|
||||||
|
rect.top() + (rect.height() / 4.0)),
|
||||||
|
QPointF(rect.right() - (rect.width() / 4.0),
|
||||||
|
rect.bottom() - (rect.height() / 4.0)));
|
||||||
|
|
||||||
|
qreal cy = halfRect.center().y();
|
||||||
|
QPointF cl(halfRect.left(), cy);
|
||||||
|
QPointF cr(halfRect.right(), cy);
|
||||||
|
|
||||||
qreal ds = xy2ll(cl).distanceTo(xy2ll(cr));
|
qreal ds = xy2ll(cl).distanceTo(xy2ll(cr));
|
||||||
qreal ps = QLineF(cl, cr).length();
|
qreal ps = QLineF(cl, cr).length();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user