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)
[KlugscheißerMode=aus]
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);
}
}
Grüsse Achim