User:Ajoessen/Kosmos

From OpenStreetMap Wiki
Jump to navigation Jump to search

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