Tilemill versus Kosmtik ?

Frage: Bietet Tilemill beim Editieren der Style-files im Edit-Fenster Unterstützung des Users z.B. durch Syntax-Highlighting, Colorpreview o.ä. ggü. der Verwendung eines (beliebigen) Texteditors und Kosmtik als Viewer ?

Hintergrund:
Ich baue seit Jahren OSM-based Printkarten mit Maperitive für den 'Eigen’gebrauch.
Nun habe ich für die Lübecker Verwaltung und etliche ‘verwaltungsnahe’ Institutionen eine Stadtkarte von Lübeck erstellt, da das städtische Katasteramt seit etwa 2008 keine Updates mehr herausbringt und diese alten Karten nun überall noch rumhängen. Die neue OSM-Stadtkarte hat als Maßstab 1:15.000, Kantenlänge um die 2m. Dabei komme ich allerdings an etlichen Stellen mit Maperitive an die Grenzen, so z.B. beim Labeling.

Um künftig einen möglicherweise ‘besseren’ Toolchain zu haben, habe ich nun probiert, wovor ich mich lange ‘gedrückt’ habe, d.h. :

  • eine Postgresql-DB mit Postgis und Hstore aufgesetzt, OSM-Daten mit osm2pgsql in die DB gefüllt, QGIS drangehängt; funktioniert bestens …
  • Mapnik installiert, an die DB gedockt und mit NIK4.py schicke, große png’s gerendert; funktioniert bestens …
    Nun geht es mir darum, die Carto-Style nach meinen Vorstellungen anzupassen bzw. einen eigenen style aufzusetzen.

Dazu kann ich die syle.xml direkt editieren - 36.371 Zeilen - DANKE ! Zum Vergleich: mein Maperitive-Rulefile hat 2.200 Zeilen; das ist also im Vergleich echt übersichtlich !
Nun habe ich Kosmtik installiert. Kosmtik scheint aber ‘nur’ ein Viewer und KEIN Editor zu sein - zumindest finde ich keine Edit-Funktionalität, obwohl hier explizit Kosmtik = ‘CartoCSS editor based on Mapnik and TileMill’ steht. Anstatt der einen style.xml habe ich nun eine yaml/mss-Filefamily am Haken bzw. im Text-Editor. Auch nicht wirklich schön !

Als Alternative wollte ich mir nun Tilemill installieren; die install.sh wirft bei Ubuntu trusty (ich arbeite unter Linux Mint 17.3) einen Abhängigkeitenfehler (“tilemill : Hängt ab von: libmapnik (= 2.3.0+dev20140426.git.a4985b3-1~trusty1) aber 2.3.0+dev20160806.git.81eff10-1~trusty1 soll installiert werden …”) Mit etwas Aufwand kann ich mich hier (vielleicht) noch selbst retten, ABER: erreiche ich dabei das, was ich bezwecke, nämlich eine User-Unterstützung beim Editieren des Styles, die über die einen Standard-Texteditors hinausgeht ?

Hat jemand von Euch Erfahrung mit Tilemill als Style-Editor ?
p.s.: mit Map Studio online im Mapbox-Account zu arbeiten kommt für mich nicht in Frage …

Nein, Kosmtik ist kein Editor. Tilemill bietet Edit-Funktionalität, stößt aber bei komplexen Stilen (wie z.B. openstreetmap-carto) auch schnell an seine Grenzen. Ich würde derzeit Kosmtik empfehlen, da Tilemill schon lange keine Aktualisierungen mehr erhalten hat, mittlerweile wird allerdings wieder daran gearbeitet. (Disclaimer: Ich bin sowas wie einer der Maintainer von Kosmtik.)

Als Alternative fürs Editieren kann ich den Atom-Editor mit CartoCSS Syntax Highlighting empfehlen (https://github.com/yohanboniface/carto-atom). Das Synatx-Highlighting kann als Plugin nachgerüstet werden. Generell sehe ich keinen Vorteil darin Editor-Funktionalitäten nachzubauen, wenn das doch ein Editor viel besser kann.

Danke auch für den Hinweis, das Wiki habe ich gleich mal angepasst. Da war nämlich mehr im Argen. Die Lizenz stimmte nicht und Kosmtik basiert natürlich nicht auf TileMill, sondern stellt die selbe bzw. ähnliche Funktionalität bereit.

Ja, aber als ich zuletzt geschaut habe, hat Tilemill darauf bestanden, eigene Tabs für jedes einzelne .mss-File aufzumachen, und da war dann (je nach Bildschirmgröße) nach 4-5 Files Schluss - alle weiteren konnten nicht mehr bearbeitet werden. Showstopper für osm-carto.

Es gibt aber ein paar Texteditoren, für die CartoCSS-Syntax-Highlighting erhältlich ist. Ich weiss gerade nicht, für welche genau, aber ich habe definitiv schon Leute mit sowas gesehen.

Bye
Frederik

Das war in der Tat sehr nervig, wurde irgendwann aber gefixt in https://github.com/tilemill-project/tilemill/pull/2184

N’Abend, Danke für die Info’s.
Den atom-Editor samt language-carto package habe ich installiert - das Syntax-Highlighting klappt.
Somit muss ich mich nun mit CartoCSS auseinandersetzen …
Im Gegensatz dazu ist die Style-Definition in QGIS ziemlich benutzerfreundlich, allerdings dürfte das Nachbauen des Carto-Style in QGIS von Null aus ewig dauern. Solch eine Art grafische Unterstützung würde ich mir für das CartoCSS-Stylen wünschen (duck weg).

Eine Frage zu Kosmtik möchte ich noch anschließen:
Wenn ich mich mit Kosmtik an einen Ort innerhalb der OSM-Daten der Postgresql-DB heran zoome, so werden im Verzeichnis …/openstreetmap-carto/tmp bereits tiles abgelegt, die bei einer Änderung an einer der mss-files via atom nicht mehr bzw. nicht vollständig neu gerendert werden - auch nicht durch ‘Shift - Aktuelle Seite neu Laden’ im FF. Dies hat zur Folge, dass die Auswirkung der Änderungen nur an noch nicht gerenderten Orten wirksam wird. Um die geänderte mss zu checken, muss man also immer weiter ‘Umherwandern’ oder immer mal wieder das tmp-Verzeichnis löschen.
So ist das Stylen mühsam. Wie kann man das Ablegen der Tiles unterbinden ?

Grüße
Rainer

Oder du holst dir ein vorgefertigtes Style Paket: https://anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/ Abschnitt “Styling your Data”

Abgelegt werden müssen die tiles ja, damit dein Browser sie anzeigen kann.

Du müsstest irgendwo hier https://github.com/kosmtik/kosmtik/blob/master/src/back/MetatileBasedTile.js#L23 einbauen, das die Datei unter metaPath gelöscht wird. Wenn sie nicht da ist, dann wird neu gerendert.

Hallo Ihr Lieben,
Ich plane Kartenstile zu bearbeiten und stehe vor der gleichen Frage, die in der Überschrift dieses Zweiges steht. Ich arbeite auf Ubuntu 18.04.

Ich habe mir die Github Projekte von TileMillhttps://github.com/tilemill-project/tilemill und Kosmtikhttps://github.com/kosmtik/kosmtik angesehen. Die sind beide in der letzten Zeit nicht aktualisiert worden.

Gibt es eine andere Möglichkeit?

Auf der Website https://ircama.github.io/osm-carto-tutorials/tilemill-ubuntu/ habe ich (im zweiten Absatz) gelesen, dass derzeit Kosmtik das empfohlene Tool für das Bearbeiten von OpenStreetMap-Stylesheets ist. Ist das (noch) so?

Hallo,

ich nutze dienstlich und teilweise auch für meine Hobbyprojekte Kosmtik. TileMill war bis vor ein paar Monaten tot, kürzlich wurde/derzeit wird ein Fork davon reintegriert.

Beide Projekte haben keine Firma (mehr) im Hintergrund. Dass der letzte Commit dann ein paar Monate zurück liegt, ist normal, wenn es keine neuen Features gibt. Die Maintainer tun das freiwillig (und oft in ihrer Freizeit!).

Manchmal programmiere ich meine CartoCSS-Stile auch ohne Kosmtik nur mit Editor (bei mir Vim) und dem CartoCSS-Transpiler Carto, den beide nutzen. Mit Nik4 erstelle ich dann Testrenderings. Das geschieht, wenn beim Kosmtik-Setup mir irgendwelche NodeJS-Fehler um die Ohren fliegen; davon habe ich zu wenig Ahnung und Lust, mich damit intensiv zu beschäftigen.

Falls du an deinen Kartenstile an der Beschriftung arbeitest, solltest du die endgültige Entscheidung mit Nik4 treffen, da normale Tileserver 2048x2048 Pixel große Metatiles auf einmal rendern, während Kosmtik kleinere Metatiles nutzt. Das hat einen erheblichen Einfluss auf die Textplatzierung!

Viele Grüße

Michael

Hallo,

Ich habe vor vielen Jahren viel mit Tilemill gearbeitet und fand das sehr praktisch, um einen eigenen Stil zu erstellen. Als Tilemill dann nicht mehr verfügbar war und Kosmetik, zumindest bei mir, noch nicht produktiv einsetzbar war, bin ich auf TileStache umgestiegen. Das ist weniger komfortabel als Tilemill und Kosmetik aber es verbraucht wenig Ressourcen. Und wenn man nur einen vorhandenen Stil anpassen will, ist es völlig ausreichend.

Rainer

Zumindest wird Kosmtik beim Standard OSM Stil explizit erwähnt und ist in der Docker Installation enthalten.

Es gibt noch Magnacarto, weiß aber nicht, ob man das empfehlen kann.

Ansonsten geht der Trend schon länger in Richtung Vector Tiles, meist verbunden mit einer anderen Stil-Sprache, von daher würde ich keine großen Entwicklungen im Bereich CartoCSS mehr erwarten? Der TileMill “Nachfolger” von Mapbox ist Mapbox Studio (komplett andere Technologie, kommerziell, pro­p­ri­e­tär), die offene Entsprechung dazu sind OpenMapTiles und der Editor Maputnik.

Ob diese aber infrage kommen, hängt davon ab, was du genau vor hast.

Vielen Dank für eure Antworten.

Ich habe erste einmal Kosmtik installiert und bin froh und glücklich dass ich soweit gekommen bin, dass mir im Browser über die Adresse

http://localhost:6789/ 

Kosmtik mit Karte angezeigt wird.

Als Nächstes sehe ich mir an, ob und wie ich mit Kosmtik das umsetzen kann, was mir vorschwebt.

Deine Meinung zu Open Source Projekten teile ich. Und ich bin dankbar für die Arbeit, die geteilt wird. Vielen Dank für deinen Tipp zu Nik4. Das habe ich mir angesehen, weil ich Text nutzen möchte. Ist es korrekt, dass ich mit dieser Software ein georeferenziertes Image erstellen kann - aber keine Kacheln analog zum Tile-Server?

Was meinst du mit Kachelgröße 2048x2048? Sind die Tiles nicht immer 256x256 Pixel groß?

TileStache habe ich mir auf die Todo gesetzt. Das ist vielleicht interessant wegen der Ressourcen.

Ich danke dir für die Informationen.

Ja, vielleicht hätte ich schreiben sollen, war ich vorhabe. Ich möchte in einem Hobbyprojekt eine Karte für unsere kleine Gemeinde erstellen.

In erster Linie geht es mir darum Erfahrungen zu sammeln und was zu lernen. Wenn etwas dabei heraus kommt, wäre das aber auch nicht schlecht.

Zum einen möchte ich Dinge die schon in den OSM-Daten sind gestalten. Dann möchte ich aber auch Daten hinzufügen. Zum Beispiel die Stelle wo das Martins-Feuer oder die Fronleichnams-Messe ist oder Stellen am Bach, an denen Kinder im Sommer gerne spielen …

Diese Karte plane ich mit Leaflet anzuzeigen. Da kann ich zwar auch ein georeferenziertes Bild darstellen. Ich möchte aber gerne Kacheln verwenden, weil ich in den unterschiedlichen Zoomstufen unterschiedliche Inhalte anzeigen möchte. Dies geht doch nur mit Kachel, richtig?

Würdet ihr hier eher mit Vector Tiles arbeiten? Als ich den Text “Ansonsten geht der Trend schon länger in Richtung Vector Tiles” gelesen habe dachte ich, dass ich hier wohl für die Zukunft am besten lerne.

Hallo,

Die Software ist nicht geeignet, um Kacheln zu erstellen. Um ein einzelnes Bild zu rendern, erst recht in hoher Auflösung (z.B. 300 dpi für den Druck), ist sie sehr gut geeignet. Man kann GeoTIFFs erstellen, aber nur solche mit Worldfile (d.h. ohne die Attribute zur Georeferenzierung und Projektion im TIFF-Header). Der Master-Branch kann sogar in anderen Projektionen als Web Mercator rendern (habe ich eingebaut).

Tirex und Renderd rendern und speichern serverseitig die Kacheln nicht einzeln, sondern rendern und speichern ein “Metatile” (8x8 Tiles) gemeinsam. Wenn eine Anfrage eintrifft, wird der passende Teil ausgeschnitten. Dadurch braucht man nur 1/64 der Inodes im Dateisystem und hat weniger Overhead, da ein Nutzer meist sowieso mehrere benachbarte Kacheln anfragt.

Viele Grüße

Michael

Vielen Dank für deine Bestätigung.

Darf ich dich fragen, womit du deine Projekte anzeigst? Ich kenne bisher nur Leaflet und OpenLayers - und da nur den Zugriff auf einen Tile-Server oder GeoServer per WMS. Ich würde aber gerne etwas über den Tellerrand hinaus gucken.

Ja, und eine zoombare Slippy Map mit Kacheln solle es heutzutage schon sein.

Schwer zu sagen, wenn es dir auch ums Lernen geht, lohnt es sich schon, das zumindest mal auszuprobieren und zu vergleichen. Zum Testen z.B. diese Quickstart Anleitung:
Generate your own OpenMapTiles.

Die meisten offenen Stile aus der OSM Community basieren immer noch auf CartoCSS und den klassischen Bild-Kacheln. Wenn du also z.B. den Deutschen Stil als Basis verwenden und anpassen möchtest, sind Vector Tiles, die erst im Browser gerendert werden, erst mal außen vor. Die momentan verfügbaren Stile für Vector Tiles sind alle einfacher gehalten und zeigen deutlich weniger Details: OpenMapTiles GL Styles, qwant-basic-gl-style.

Um das volle Potential von Vector Tiles auszuschöpfen, sollte man die Mapbox GL JS Bibliothek anstatt Leaflet verwenden. Für Leaflet gibt es zwar Plugins, aber die haben zu viele Einschränkungen. In OpenLayers ist die Unterstützung besser, reicht aber vermutlich auch nicht an Mapbox GL JS heran.

Nik4 verwende ich, außer um beim Programmieren Testbilder zu rendern, nur zur Erzeugung von Druckgrafiken. Frontend-Sachen mache ich eher selten und, falls doch, dann mit Leaflet.