Для “нормальных” метров конечно надо трансверсальным меркатором
пользоваться, но josm тайлы (пока?) не поворачивает. Я поправил слегка Mercator.java для соответствия epsg:3857, никаких побочных эффектов не вижу:
Index: src/org/openstreetmap/josm/data/projection/Mercator.java
===================================================================
--- src/org/openstreetmap/josm/data/projection/Mercator.java (revision 3852)
+++ src/org/openstreetmap/josm/data/projection/Mercator.java (working copy)
@@ -23,14 +23,14 @@
public EastNorth latlon2eastNorth(LatLon p) {
return new EastNorth(
- p.lon()*Math.PI/180,
- Math.log(Math.tan(Math.PI/4+p.lat()*Math.PI/360)));
+ p.lon()*Math.PI/180*6378137,
+ Math.log(Math.tan(Math.PI/4+p.lat()*Math.PI/360))*6378137);
}
public LatLon eastNorth2latlon(EastNorth p) {
return new LatLon(
- Math.atan(Math.sinh(p.north()))*180/Math.PI,
- p.east()*180/Math.PI);
+ Math.atan(Math.sinh(p.north()/6378137))*180/Math.PI,
+ p.east()/6378137*180/Math.PI);
}
@Override public String toString() {
@@ -59,6 +59,6 @@
public double getDefaultZoomInPPD() {
// This will set the scale bar to about 100 km
- return 0.000158;
+ return 1000.;
}
}