User:Ajoessen/Kosmos
Installation
Kosmos-2.5.405.6.zip von hier entpacken und nach C:\Programme verschieben
Arbeitsverzeichnis anlegen: D:\Karten\OpenStreetMap\Kosmos
(man kann auch jedes beliebige andere nahmen, muß dann die Pfade der Batchdateien entsprechend anpassen)
C:\Programme\Kosmos-2.5.405.6\Gui\Kosmos.Gui.exe starten
Im Unterordner Cache\RenderingRules werden dann die Stilvorlagen im Wiki-Rohformat abgelegt.
Für die Tileverarbeitung diese in das Arbeitsverzeichnis kopieren und umbenennen zu Kosmos_rules.xml. In der Projektdatei (Endung .kpr) muß diese Datei entsprechend eingetragen werden:
<RulesSource> <WikiPage>Kosmos_rules.xml</WikiPage> </RulesSource>
Alternativ: Wiki-Seite Kosmos_General_Purpose_Rules aufrufen, Reiter "view source" oder "Bearbeiten" -> Inhalt kopieren in lokale Datei
Allgemeine Karte
Der Originalstil sieht nicht besonders toll aus, deshalb empfehle ich, die Stilvorlage des DE:OSM_Composer zu verwenden.
Nach erstmaligem Durchlauf stehen seine Icons unter D:\Karten\OpenStreetMap\Kosmos\Kosmos\Cache\ImageCache
kosmos-osmc.kpr:
<KosmosProject Version="2.2"> <RulesSource> <WikiPage>osmc_style</WikiPage> </RulesSource> <DataFiles> <Osm> <FilePath>D:\Karten\osm\Geofabrik\duesseldorf.osm</FilePath> </Osm> </DataFiles> <PrintSettings> <Overlap>20</Overlap> <ZoomFactor>0</ZoomFactor> </PrintSettings> </KosmosProject>
kosmos-osmc.bat:
C:\Programme\Kosmos-2.5.405.6\Console\Kosmos.Console.exe tilegen "Kosmos-osmc.kpr" 50.5 6.0 52.5 9.5 3 13 -ts D:\Tiles\Kosmos cd D:\Tiles\Kosmos for /R .\ %%N IN (*.PNG) DO if %%~zN LSS 1300 del %%N
Die letzte Zeile der Batch-Datei löscht alle leeren Tiles.
Anpassung der Rules für transparente Tiles
| LandBackgroundColor || #00FFFFFF ausserdem alles rauswerfen, was nicht dargestellt werden soll.
Stil für Stromleitungen
strom_Rules.xml
Leitungen ohne Relationen werden dünn dargestellt:
Power:Line {| class="wikitable" border="1" cellspacing="0" cellpadding="2" width="100%" |- style="background-color:#F8F4C2" ! style="width:15%" | Rule Name ! style="width:7%" | Targets ! style="width:20%" | Selector ! style="width:25%" | Template ! style="width:5%" | Options ! style="width:15%" | Comment |- | PowerLine || {{IconWay}} || {{tag|power|line}} || Text (MinZoom=11, Color=black, TagToUse=name;ref, FontName=Arial, FontStyle=regular, FontSize=11:8;16:12) |- | unbekannt || {{IconWay}} || {{tag|power|line}} || Polyline (Color=fuchsia, BorderColor=fuchsia, Width=10:0;14:2) |- | 380+220kV || {{IconWay}} || {{tag|voltage|380000;220000}} || Polyline (Color=lime, BorderColor=red, Width=10:0;14:2) |- | 380+110kV || {{IconWay}} || {{tag|voltage|380000;110000}} || Polyline (Color=blue, BorderColor=red, Width=10:0;14:2) |- | 380-110kV || {{IconWay}} || {{tag|voltage|380000;220000;110000}} || Polyline (Color=black, BorderColor=black, Width=10:0;14:2) |- | 220+110kV || {{IconWay}} || {{tag|voltage|220000;110000}} || Polyline (Color=blue, BorderColor=lime, Width=10:0;14:2) |- | 110kV || {{IconWay}} || {{tag|voltage|110000}} || Polyline (Color=blue, BorderColor=blue, Width=10:0;14:2) |- | DB || {{IconWay}} || {{tag|operator|DB_Energie}} || Polyline (Color=yellow, Width=10:0;14:2) || || |- | WSW || {{IconWay}} || {{tag|operator|WSW}} || Polyline (Color=aqua, Width=7:1;17:10) || || |- | AVU || {{IconWay}} || {{tag|operator|AVU}} || Polyline (Color=aqua, Width=7:1;17:10) || || |- | markE || {{IconWay}} || {{tag|operator|markE}} || Polyline (Color=aqua, Width=7:1;17:10) || || |- | 220kV || {{IconWay}} || {{tag|voltage|220000}} || Polyline (Color=lime, BorderColor=lime, Width=10:0;14:2) |- | 380kV || {{IconWay}} || {{tag|voltage|380000}} || Polyline (Color=red, BorderColor=red, Width=10:0;14:2) |}
Relationsdarstellung:
==Routes== {| class="wikitable" border="1" cellspacing="0" cellpadding="2" width="100%" |- style="background-color:#F8F4C2" ! style="width:15%" | Rule Name ! style="width:7%" | Targets ! style="width:20%" | Selector ! style="width:25%" | Template ! style="width:5%" | Options ! style="width:15%" | Comment |- | Relation110kV || {{IconRelation}} || {{tag|type|route}} {{tag|route|power}} {{tag|voltage|110000}} || Polyline (MinZoom=7, Color=blue, Width=7:1;17:10) || || |- | RelationDB || {{IconRelation}} || {{tag|type|route}} {{tag|route|power}} {{tag|voltage|110000}} {{tag|operator|DB_Energie}} || Polyline (MinZoom=7, Color=yellow, Width=7:1;17:10) || || |- | Relation220kV || {{IconRelation}} || {{tag|type|route}} {{tag|route|power}} {{tag|voltage|220000}} || Polyline (MinZoom=7, Color=lime, Width=7:1;17:10) || || |- | Relation380kV || {{IconRelation}} || {{tag|type|route}} {{tag|route|power}} {{tag|voltage|380000}} || Polyline (MinZoom=7, Color=red, Width=7:1;17:10) || || |}
Projektdatei strom.kpr:
<KosmosProject Version="2.2"> <RulesSource> <WikiPage>strom_Rules.xml</WikiPage> </RulesSource> <DataFiles> <Osm> <FilePath>power.osm</FilePath> </Osm> </DataFiles> <PrintSettings> <PrintMapBounds>6.0929505,50.5127242,8.5809682,52.7528199</PrintMapBounds> <Overlap>20</Overlap> <ZoomFactor>0</ZoomFactor> </PrintSettings> </KosmosProject>
power.osm wird mit osmosis aus der nrw.osm der Geofabrik ausgeschnitten:
D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-xml D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm --tf accept-ways power=* --tf accept-relations route=power --used-node --write-xml power.osm
Erzeugen der Tiles mit Power.bat:
C:\Programme\Kosmos-2.5.405.6\Console\Kosmos.Console.exe tilegen "strom.kpr" 50.5 6.0 52.5 9.5 3 13 -ts D:\Tiles\Power C:\Programme\Kosmos-2.5.405.6\Console\Kosmos.Console.exe tilegen "strom.kpr" 51.2 6.5 51.75 7.9 14 15 -ts D:\Tiles\Power cd D:\Tiles\Power for /R .\ %%N IN (*.PNG) DO if %%~zN LSS 1300 del %%N
Mit dem letzten Befehl werden leere Tiles gelöscht.
Tiles für Bus & Bahn
Datenquelle: oepnv.osm (Filterung siehe Osmosis)
Bus: MinZoom=11, Color=red
Strab: MinZoom=10, Color=blue
U-Bahn: MinZoom=10, Color=navy
S-Bahn: MinZoom=7, Color=lime
Zug: MinZoom=7, Color=green
Die gesamte Rule-Datei findet sich hier
Für die Haltestellensymbole ist zusätzlich diese zip-Datei notwendig.
Tiles für Grenzen
zuschneiden mit osmosis:
D:\Karten\OpenStreetMap\osmosis\bin\osmosis.bat --read-xml D:\Karten\osm\Geofabrik\nordrhein-westfalen.osm.bz2 --tf accept-ways boundary=administrative --used-node --tf accept-relations boundary=administrative --write-xml nrw-grenzen.osm
BorderRules.xml:
==Routes== {| class="wikitable" border="1" cellspacing="0" cellpadding="2" width="100%" |- style="background-color:#F8F4C2" ! style="width:15%" | Rule Name ! style="width:7%" | Targets ! style="width:20%" | Selector ! style="width:25%" | Template ! style="width:5%" | Options ! style="width:15%" | Comment |- | Level8 || {{IconRelation}} || {{tag|admin_level|8}} || Polyline (MinZoom=10, Color=yellow, Width=10:2;17:10, Curved=true) || || |- | Level7 || {{IconRelation}} || {{tag|admin_level|7}} || Polyline (MinZoom=9, Color=black, Width=9:2;17:10, Curved=true) || || |- | Level6 || {{IconRelation}} || {{tag|admin_level|6}} || Polyline (MinZoom=8, Color=blue, Width=8:2;17:10, Curved=true) || || |- | Level5 || {{IconRelation}} || {{tag|admin_level|5}} || Polyline (MinZoom=7, Color=green, Width=7:2;17:10, Curved=true) || || |- | Level4 || {{IconRelation}} || {{tag|admin_level|4}} || Polyline (MinZoom=5, Color=red, Width=5:1;17:10, Curved=true) || || |- |}
Tiles mit Höhenlinien
Hierfür wird das Programm srtm2osm benutzt, das vom gleichen Autor wie Kosmos stammt und hier heruntergeladen werden kann.
Der Inhalt der Zip-Datei kommt in das Verzeichnis D:\Karten\Openstreetmap\Srtm2Osm
Dazu wird eine batch-Datei erzeugt, die die Grenzen des benötigten Rechtecks angibt:
srtm.bat:
Srtm2osm.exe -bounds1 50.3 5.8 52.5 9.5
Das Programm lädt sich die Quelldaten von den Servern der NASA und berechnet daraus Höhenlinien im 20m-Raster als osm-Datei.
Diese kann in Kosmos weiterverarbeitet werden:
Verzeichnis D:\Karten\Openstreetmap\Kosmos\SRTM
Stildatei srtm.xml (alternativ auch hier):
==Options== {| class="wikitable" border="1" cellspacing="0" cellpadding="2" width="100%" |- style="background-color:#F8F4C2" ! style="width:20%" | Option ! style="width:60%" | Value ! style="width:20%" | Comment |- | MinKosmosVersion || 2.1 || Minimal version of Kosmos needed to use these rules |- | LandBackgroundColor || #00FFFFFF |- | SeaColor || #B5D6F1 |} ==Other Land Features== {| class="wikitable" border="1" cellspacing="0" cellpadding="2" width="100%" |- style="background-color:#F8F4C2" ! style="width:15%" | Rule Name ! style="width:7%" | Targets ! style="width:20%" | Selector ! style="width:25%" | Template ! style="width:5%" | Options ! style="width:15%" | Comment |- | Contours || {{IconWay}} || {{tag|ele}} || || || for elevation contours generated by [[Srtm2Osm]] |- | .Major || {{IconWay}} || ValueNum(e,"ele") % 100 = 0 || Polyline (MinZoom=8, Color=#B0AD8852, Width=8:1;12:2, Curved=true) || || Major contours (100m ones) |- | .* || {{IconWay}} || || Polyline (MinZoom=12, Color=#B0AD8852, Width=1, Curved=true) || || all other contours |}
Projektdatei SRTM.kpr:
<KosmosProject Version="2.2"> <RulesSource> <WikiPage>SRTM.xml</WikiPage> </RulesSource> <DataFiles> <Osm> <FilePath>D:\Karten\OpenStreetMap\Srtm2Osm\SRTM.osm</FilePath> </Osm> </DataFiles> <PrintSettings> <Overlap>20</Overlap> <ZoomFactor>0</ZoomFactor> </PrintSettings> </KosmosProject>
Batchdatei SRTM.bat:
C:\Programme\Kosmos-2.5.405.6\Console\Kosmos.Console.exe tilegen "SRTM.kpr" 50.3 5.85 52.5 9.5 8 14 -ts D:\Tiles\SRTM cd D:\Tiles\SRTM for /R .\ %%N IN (*.PNG) DO if %%~zN LSS 1300 del %%N
Tiles in openlayers einbinden
osmviewer.htm erweitern:
var KosmosLayer = new OpenLayers.Layer.OSM("Kosmos", "file:///D:/Tiles/Kosmos/${z}/${x}/${y}.png", {numZoomLevels: 16, alpha: true, isBaseLayer: true, visibility: false}); map.addLayer(KosmosLayer); var srtmLayer = new OpenLayers.Layer.OSM("Höhenlinien", "file:///D:/Tiles/SRTM/${z}/${x}/${y}.png", {numZoomLevels: 16, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(srtmLayer); var BorderLayer = new OpenLayers.Layer.OSM("Grenzen", "file:///D:/Tiles/Grenzen/${z}/${x}/${y}.png", {numZoomLevels: 14, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(BorderLayer); var BahnLayer = new OpenLayers.Layer.OSM("Bahn", "file:///D:/Tiles/Bahn/${z}/${x}/${y}.png", {numZoomLevels: 17, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(BahnLayer); var RadLayer = new OpenLayers.Layer.OSM("Rad", "file:///D:/Tiles/Rad/${z}/${x}/${y}.png", {numZoomLevels: 16, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(RadLayer); var WanderLayer = new OpenLayers.Layer.OSM("Wandern", "file:///D:/Tiles/lonvia/${z}/${x}/${y}.png", {numZoomLevels: 16, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(WanderLayer); var powerLayer = new OpenLayers.Layer.OSM("Power", "file:///D:/Tiles/Power/${z}/${x}/${y}.png", {numZoomLevels: 17, alpha: true, isBaseLayer: false, visibility: false}); map.addLayer(powerLayer);