Modify

Opened 16 years ago

Closed 9 years ago

Last modified 9 years ago

#2065 closed defect (fixed)

scale display corrupt for big scales

Reported by: dieterdreist Owned by: team
Priority: minor Milestone:
Component: Core Version: latest
Keywords: zoom wheel mouse scale Cc:

Description (last modified by mdk)

I found that when zooming out with the mouse wheel, the displayed scale (top left corner) starts to become smaller at a certain point, ending up at <1m whilst it should be thousands of km. Maybe there could be a limit for mousezoom as there is with the slider, as it makes no sense to zoom beyond earth-extents.
Release 1306

Attachments (0)

Change History (11)

comment:1 by detlef.reichl@…, 16 years ago

I posted the same thing some hours ago on the mailing list. In private mail, someone told me, that it is the fault of the greatCircleDistance method, what I've already expected. He pointed me to an other way of calculation, which on the down side is much more expensive.

So I looked through the existing code and the only position where speed really is needed is in the GPX import. On the other hand, the import shall nearly never touch the problem of the existing formula, so for this the old one can be used further.

comment:2 by anonymous, 16 years ago

Ticket #2445 has been marked as a duplicate of this ticket.

comment:3 by stoecker, 16 years ago

Resolution: fixed
Status: newclosed

Should be fixed now. Zooming out should no longer be possible.

comment:4 by dieterdreist, 16 years ago

Resolution: fixed
Status: closedreopened

it is still corrupt: when zooming out, the numbers get bigger but at a certain point (when the world is smaller than the display) they get smaller again even while zooming out instead of zooming in.

comment:5 by stoecker, 14 years ago

Component: unspecifiedCore
Owner: changed from framm to team
Status: reopenednew

comment:6 by xeen, 14 years ago

I believe this issue is fixed and only the way the scale bar is displayed makes this confusing. Since each projection transforms the 3D-earth onto a 2D plane the scale will be different depending on where you edit -- near the equator, where the circumference is the highest the scale would display a large number. Likewise, the closer to the poles the smaller the number will be.

The scale uses the viewport center as point of reference. This seems to be a good choice, since on average the error cancels out for the whole viewport. Also, I usually edit around the center and I assume most other people do so as well. I suposse adding a tooltip to the scaler/slider wouldn't hurt. What about…

"Point of reference is the center of the viewport. Scale depends on zoom level, projection and location due to the way the 3D earth is projected onto a 2D plane."

comment:7 by stoecker, 14 years ago

I believe there are still situations, where the validity checks don't catch and zoom goes berserk. Especially dangerous for projections only covering parts of the earth. Thought I didn't look lately.

comment:8 by xeen, 14 years ago

I checked for several UTMs, WGS84, Lambert Zone in Estonia and swiss grid and all appeared to work fine (or at least, the way I described above). I'll try some more some other time in case I turned blind here.

comment:9 by mdk, 9 years ago

Description: modified (diff)

Displaying a scale for a non isometric projection is always error-prone. The error increase with the visible latitude range.

To demonstrate the effect, look at extreme situations. The default projection is Mercator.

  • So open a new layer and show Bing imagery.
  • Zoom out as far as possible.
  • Scroll the visible world to the top: The scale shows 666.2 km.
  • Grab the world and move it slowly to the bottom.
  • Up to the middle the scape grows to something like 8200 km
  • Below the middle, the value shrinks to 657.7 km

What is the sense of this scale? Does it mean “2cm on the map are something between 650 and 8200 km”? We could show a mean value with error range like “4425 km ± 3775 km”.

We have the same problem for smaller visible areas, but not so pronounced. If you zoom so that Spain is filling the view from top to bottom, the scale shows something around 100 km. But this value is only valid for the middle of the map. Grab the map in the middle and move to top and to the bottom. The scale changes between 104 (top) and 93 (button) we have an error of about 10% in this case. When we do the same with the Bodensee, I get 5.41 km in the middle and 5.44 for the top and 5.39 for the button. This is an error of about 1%.

The scale (for Mercator) is only valid for a specific latitude. The larger the shown latitude range, the larger is the scale error.

We should either show an error range: <mean> km ± <error range> (102.3 km ± 1.2 km)
or an value range: <lowest visible scale> - <highest visible scale> (101.1 km – 103.5 km)
or we should hide the scale if the error is to big.

The error depends of the projection and min and max latitude:

minLat = visibleArea.getBottomLatitude();
maxLat = visibleArea.getTopLatitude();
// check if equator is in the visible range
if (minLax * maxLat <0) {
    minLat = 0;
}

comment:10 by stoecker, 9 years ago

Resolution: fixed
Status: newclosed

This comment has nothing to do with the bug report.

comment:11 by stoecker, 9 years ago

Ticket #3326 has been marked as a duplicate of this ticket.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.