source: josm/trunk/src/org/openstreetmap/josm/gui/MapScaler.java@ 729

Last change on this file since 729 was 627, checked in by framm, 16 years ago
  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1// License: GPL. See LICENSE file for details.
2
3package org.openstreetmap.josm.gui;
4
5import java.awt.Graphics;
6import java.awt.geom.Rectangle2D;
7
8import javax.swing.JComponent;
9
10import org.openstreetmap.josm.Main;
11import org.openstreetmap.josm.actions.HelpAction.Helpful;
12import org.openstreetmap.josm.data.coor.LatLon;
13import org.openstreetmap.josm.data.projection.Projection;
14import org.openstreetmap.josm.tools.ColorHelper;
15
16public class MapScaler extends JComponent implements Helpful {
17
18 private final NavigatableComponent mv;
19 private final Projection proj;
20
21 public MapScaler(NavigatableComponent mv, Projection proj) {
22 this.mv = mv;
23 this.proj = proj;
24 setSize(100,30);
25 setOpaque(false);
26 }
27
28 @Override public void paint(Graphics g) {
29 LatLon ll1 = mv.getLatLon(0,0);
30 LatLon ll2 = mv.getLatLon(100,0);
31 double dist = ll1.greatCircleDistance(ll2);
32 String text = dist > 1000 ? (Math.round(dist/100)/10.0)+"km" : Math.round(dist*10)/10+"m";
33 Rectangle2D bound = g.getFontMetrics().getStringBounds(text, g);
34 g.setColor(ColorHelper.html2color(Main.pref.get("color.scale", "#ffffff")));
35 g.drawLine(0, 5, 99, 5);
36 g.drawLine(0, 0, 0, 10);
37 g.drawLine(99, 0, 99, 10);
38 g.drawLine(49, 0, 49, 10);
39 g.drawLine(24, 3, 24, 7);
40 g.drawLine(74, 3, 74, 7);
41 g.drawString(text, (int)(50-bound.getWidth()/2), 23);
42 }
43
44 public String helpTopic() {
45 return "MapView/Scaler";
46 }
47}
Note: See TracBrowser for help on using the repository browser.