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);