15.10.2013, 13:28
Hallo Christian,
vielen Dank für deine Antwort und Tipp.
..das Konzept zum Wechseln der Map-Styles und Maps (ThemenSwitcher) ist von den Android Anwendungen zB.: Oruxmaps übernommen. Das wurde von den Anwendern über einen langen Zeitraum eingefordert. Gerade zum Testen von Karten in Verbndung mit den Stylesheets ist das eine große Hilfe. Gerade bei der OpenAndromap ist das Wechseln der Themes wegen dem Überblick erforderlich.
OAMHC.xml steht für Hike und Cycle
OAMLIGHT.xml Karte ohne Wander/Cycle Weg hervorhebung
Elevate.xml neuester Style von einem User der OAM (mehr auf der OAM Seite)
Beispiel an dem OpenAndroMap Kartensatz. Karte und Styles sollten aus der Gleichen Quelle sein, damit das im Sinne des Erstellers angezeigt wird.
Das heißt nicht dass man das nicht mischen kann (Maps und XML aus verschiedenen Quellen)
Dir müssen paarig sein MAPS und Styles werden automatisch gesucht.
zB: OAM ist der Kartensatz der Openandromap
.../WMSMap/OAM/baden-wuerttemberg.map
Diese Karte kann nun mit verschieden Theme angezeigt werden
.../WMSTheme/OAM/OAMHC.xml ..HC steht für Hike und Cycle Theme
.../WMSTheme/OAM/OAMLIGHT.xml ..ohne hervorgehoben Cycle/Wanderwege
.../WMSTheme/OAM/Elevate.xml ...neue optimierte Karte fürs Bergwandern (mehr auf OAM Seite)
dazu die zu diesem Style erforderlichen/passenden Symbole und Pattern
.../WMSTheme/OAM/patterns/...
.../WMSTheme/OAM/symbols/....
.../WMSTheme/OAM/Elevate/...
Ich lade die "Externen Sytylesheets". Die Source ist kein Geheimnis, wenn dich das gefrickel nicht stört.....
..
private static Layer createTileRendererLayer(TileCache tileCache, MapViewPosition mapViewPosition) {
TileRendererLayer tileRendererLayer = new TileRendererLayer(tileCache, mapViewPosition, GRAPHIC_FACTORY);
// tileRendererLayer.setMapFile(new File("c:/Desktop/germany.map"));
try {
File stxx = new File((new File(".").getCanonicalPath()) + "/WMSMap/"+groupSelector.getSelectedItem()+"/" + mapSelector.getSelectedItem() + ".map");
// tileRendererLayer.setMapFile(new File((new File(".").getCanonicalPath()) + "/WMSMap/"+groupSelector.getSelectedItem()+"/" + mapSelector.getSelectedItem() + ".map"));
tileRendererLayer.setMapFile(stxx);
System.out.print("Mapfile==>");
System.out.println(stxx);
// tileRendererLayer.setXmlRenderTheme(InternalRenderTheme.OSMARENDER);
tileRendererLayer.setXmlRenderTheme(ExternalRenderTheme());
return tileRendererLayer;
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return null;
}
private static XmlRenderTheme ExternalRenderTheme() throws FileNotFoundException {
String RENDER_THEME_PATH = "WMSTheme/"+(String) groupSelector.getSelectedItem()+"/" + (String) themeSelector.getSelectedItem() + ".xml";
File f= null;
try {
f = new File(new File(".").getCanonicalPath()+"/"+RENDER_THEME_PATH);
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
if (f.exists()) {
System.out.print("RenderTheme:==>");
System.out.println(f);
}else
{
RENDER_THEME_PATH="WMSTheme/osmarender/osmarender.xml";
System.out.print("den File gibts net=>");
System.out.println(RENDER_THEME_PATH);
}
System.out.print("xxRenderTheme:==>");
System.out.println(f);
ExternalRenderTheme externalRenderTheme = new ExternalRenderTheme(new File(RENDER_THEME_PATH));
System.out.print("RenderTheme:==>");
System.out.println(RENDER_THEME_PATH);
return externalRenderTheme;
}
Danke! werde dem mal nachgehen. (Sorry >> "Freunde" in RouteConverter.<< geht das genauer...steh auf dem Schlauch...)
Versuch doch einfach mal mit meinem Switcher zu spielen und lade dir aus den entsprechenden Quellen die dazugehörigen Maps. Nicht die dort angebotenen XML Files, denn die müssen angepasst sein.
Diese sind aber bei mir schon drin
Grüsse und Danke
Achim
vielen Dank für deine Antwort und Tipp.
(15.10.2013, 11:56)routeconverter Wrote:(15.10.2013, 10:07)womisa Wrote: ich habe mal in den MapsforgeViewer einen Map und ThemenSwitcher eingebaut (zusammengefrickelt!). Sowas ähnliches sollte in eine zukünftige Version von RC einfliessen.
Ich frage mich, wo ein geeigneter Platz dafür wäre. Wechselst Du die Karte und das Thema häufig?
..das Konzept zum Wechseln der Map-Styles und Maps (ThemenSwitcher) ist von den Android Anwendungen zB.: Oruxmaps übernommen. Das wurde von den Anwendern über einen langen Zeitraum eingefordert. Gerade zum Testen von Karten in Verbndung mit den Stylesheets ist das eine große Hilfe. Gerade bei der OpenAndromap ist das Wechseln der Themes wegen dem Überblick erforderlich.
OAMHC.xml steht für Hike und Cycle
OAMLIGHT.xml Karte ohne Wander/Cycle Weg hervorhebung
Elevate.xml neuester Style von einem User der OAM (mehr auf der OAM Seite)
(15.10.2013, 11:56)routeconverter Wrote:..zu einem StyleSheet gehört der xml File und relative dazu die symbole und pattern ...etc. eben ALLES auf das im xml-File (relative) Bezug genommen wird.(15.10.2013, 10:07)womisa Wrote: Die Stylesheets sind auf dem aktuellen Stand.
Was genau gehört zu den Stylesheets und wie konfigurierst Du die? Benutzt Du TileRendererLayer#setXmlRenderTheme()? Leider lag da kein Quelltext dabei.
Und woran sehe ich, daß die Stylesheets wirken?
Beispiel an dem OpenAndroMap Kartensatz. Karte und Styles sollten aus der Gleichen Quelle sein, damit das im Sinne des Erstellers angezeigt wird.
Das heißt nicht dass man das nicht mischen kann (Maps und XML aus verschiedenen Quellen)
Dir müssen paarig sein MAPS und Styles werden automatisch gesucht.
zB: OAM ist der Kartensatz der Openandromap
.../WMSMap/OAM/baden-wuerttemberg.map
Diese Karte kann nun mit verschieden Theme angezeigt werden
.../WMSTheme/OAM/OAMHC.xml ..HC steht für Hike und Cycle Theme
.../WMSTheme/OAM/OAMLIGHT.xml ..ohne hervorgehoben Cycle/Wanderwege
.../WMSTheme/OAM/Elevate.xml ...neue optimierte Karte fürs Bergwandern (mehr auf OAM Seite)
dazu die zu diesem Style erforderlichen/passenden Symbole und Pattern
.../WMSTheme/OAM/patterns/...
.../WMSTheme/OAM/symbols/....
.../WMSTheme/OAM/Elevate/...
Ich lade die "Externen Sytylesheets". Die Source ist kein Geheimnis, wenn dich das gefrickel nicht stört.....
..
private static Layer createTileRendererLayer(TileCache tileCache, MapViewPosition mapViewPosition) {
TileRendererLayer tileRendererLayer = new TileRendererLayer(tileCache, mapViewPosition, GRAPHIC_FACTORY);
// tileRendererLayer.setMapFile(new File("c:/Desktop/germany.map"));
try {
File stxx = new File((new File(".").getCanonicalPath()) + "/WMSMap/"+groupSelector.getSelectedItem()+"/" + mapSelector.getSelectedItem() + ".map");
// tileRendererLayer.setMapFile(new File((new File(".").getCanonicalPath()) + "/WMSMap/"+groupSelector.getSelectedItem()+"/" + mapSelector.getSelectedItem() + ".map"));
tileRendererLayer.setMapFile(stxx);
System.out.print("Mapfile==>");
System.out.println(stxx);
// tileRendererLayer.setXmlRenderTheme(InternalRenderTheme.OSMARENDER);
tileRendererLayer.setXmlRenderTheme(ExternalRenderTheme());
return tileRendererLayer;
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return null;
}
private static XmlRenderTheme ExternalRenderTheme() throws FileNotFoundException {
String RENDER_THEME_PATH = "WMSTheme/"+(String) groupSelector.getSelectedItem()+"/" + (String) themeSelector.getSelectedItem() + ".xml";
File f= null;
try {
f = new File(new File(".").getCanonicalPath()+"/"+RENDER_THEME_PATH);
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
if (f.exists()) {
System.out.print("RenderTheme:==>");
System.out.println(f);
}else
{
RENDER_THEME_PATH="WMSTheme/osmarender/osmarender.xml";
System.out.print("den File gibts net=>");
System.out.println(RENDER_THEME_PATH);
}
System.out.print("xxRenderTheme:==>");
System.out.println(f);
ExternalRenderTheme externalRenderTheme = new ExternalRenderTheme(new File(RENDER_THEME_PATH));
System.out.print("RenderTheme:==>");
System.out.println(RENDER_THEME_PATH);
return externalRenderTheme;
}
(15.10.2013, 11:56)routeconverter Wrote:Dateiformat ist gleich (glaube ich) , aber in den einzelnen MAP (Kartendaten) werden verschiedene Tags und Atribute generiert die zu dem XML File (Renderregeln) passen müssen.(15.10.2013, 10:07)womisa Wrote: Einfach das RAR entpacken und die xxx.map Dateien ind den entsprechenden MAP dir ablegen
zB: da
.../WMSMap/OAM OpenAndroMap ===> http://www.openandromaps.org/downloads
.../WMSMap/FZK FreiZeitKarten ===> http://www.easyclasspage.de/maps/seite-2.html
.../WMSMap/osmarender MapsforgeKarten ===> http://download.mapsforge.org/maps/europe/
Haben die Karten alle dasselbe Dateiformat?
(15.10.2013, 11:56)routeconverter Wrote:...naja ich halte das für ein UNDERSTATEMENT! Du verstehst davon mehr als ich....(15.10.2013, 10:07)womisa Wrote: Ich hoffe sowas findet (funktionell) Eingang in RC......
Das wäre das Ziel. Sofern ich es verstehe...
(15.10.2013, 10:07)womisa Wrote: Ps.: Ich wollte noch die Koordinaten unter dem Cursor anzeigen, aber die sind "grotten" falsch. Im Mapsforge Forum habe isch schon nachgefragt,aber noch keine Antwort bekommen.
Gibts da einen Tipp von Dir was da falsch ist?
.......
public void mouseMoved(MouseEvent mouseEvent) {
double x = mouseEvent.getX();
double y = mouseEvent.getY();
byte zoom=mapViewPosition.getZoomLevel();
double lx =MercatorProjection.pixelXToLongitude(x, zoom);
double ly =MercatorProjection.pixelYToLatitude(y, zoom);
WmsMapViewer.longText.setText(String.format("%.4f",lx));
WmsMapViewer.latText.setText(String.format("%.4f",ly));
}
.....
(15.10.2013, 11:56)routeconverter Wrote: Das sieht nicht schlecht aus. Ich nehme an, Du hättest WGS84-Koordinaten erwartet und bekommst Mercator-Projektionskoordinaten? Dafür gibt es NavigationConversion#mercatorXToWgs84Longitude und "Freunde" in RouteConverter.
Danke! werde dem mal nachgehen. (Sorry >> "Freunde" in RouteConverter.<< geht das genauer...steh auf dem Schlauch...)
Versuch doch einfach mal mit meinem Switcher zu spielen und lade dir aus den entsprechenden Quellen die dazugehörigen Maps. Nicht die dort angebotenen XML Files, denn die müssen angepasst sein.
Diese sind aber bei mir schon drin
Grüsse und Danke
Achim
Grüsse Achim