... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Neue experimentelle RouteConverter-Version mit mapsforge-Unterstützung
#22
Hallo Christian,

das Umlegen des DireCtorys in der Registry klappt...super! Danke für die Aufklärung und Hinweis.

Was das Zommen auf einen Trackausschnitt betrifft: Das klappt! ...beinahe.

Bei mir wir Rechts und Links etwas vom Track abgeschnitten und somit ist der Track nicht ganz zu sehen. Aber trotzdem ist das super! Man ist halt nie zufrieden.....sorry(!) selbst mit solchen Kleinigkeiten, dass etwas vom Track abgeschnitten wird. Früher war das "Mückenschiß" suchen wesentlich schwieriger.

[KlugscheißerMode=an]
Warum ist das schwierig auf diesen Kartenausschnitt zu setzen?

In den letzten Tagen habe ich gelernt, dass die Mercator Projection im "absoluten" Nullpunkt beginnt.

Wenn man nun vom Track das Minimum von LAT/LON und das Maximum sucht und die Differenz bildet +Zuschlag ergibt die Größe des Ausschnitts und die Hälfte davon das Kartencenter....
Irgendwann bin ich da mal im MapsforgeCode über sowas drüber gestolpert...ich glaube da sind dafür auch Hilfsfunktionen drin...

==> package org.mapsforge.core.util; ==> LatLongUtils
==>org.mapsforge.map.util; ==> MapPositionUtil
Sinngemäß so: (Quelle GBXCreator)
Code:
/**
     * Centers the {@link GPXObject} and sets zoom for best fit to panel.
     */
    public void fitGPXObjectToPanel(GPXObject gpxObject) {
        int maxZoom = tileController.getTileSource().getMaxZoom();
        int xMin = OsmMercator.LonToX(gpxObject.getMinLon(), maxZoom);
        int xMax = OsmMercator.LonToX(gpxObject.getMaxLon(), maxZoom);
        int yMin = OsmMercator.LatToY(gpxObject.getMaxLat(), maxZoom); // screen y-axis positive is down
        int yMax = OsmMercator.LatToY(gpxObject.getMinLat(), maxZoom); // screen y-axis positive is down
        
        if (xMin > xMax || yMin > yMax) {
            //setDisplayPositionByLatLon("IrgendEine DefaultPosition");
        } else {
            int width = Math.max(0, getWidth());
            int height = Math.max(0, getHeight());
            int zoom = maxZoom;
            int x = xMax - xMin;
            int y = yMax - yMin;
            while (x > width || y > height) {
                zoom--;
                x >>= 1;
                y >>= 1;
            }
            x = xMin + (xMax - xMin) / 2;
            y = yMin + (yMax - yMin) / 2;
            int z = 1 << (maxZoom - zoom);
            x /= z;
            y /= z;
            setDisplayPosition(x, y, zoom);
        }
    }
[KlugscheißerMode=aus]
Grüsse Achim
Reply


Messages In This Thread
RE: Neue experimentelle RouteConverter-Version mit mapsforge-Unterstützung - by womisa - 23.10.2013, 12:52

Forum Jump:


Users browsing this thread: 1 Guest(s)