Ein neues Paket für OpenStreetMap ist sehr interessant für Web-Entwickler. Mit den Protomaps kann man 2D-Vektorkarten bearbeiten und auch veröffentlichen.
Zu dem neuen Paket Protomaps gehören auch diverse Werkzeuge zur Erstellung eigener, interaktiver 2D-Vektorkarten fürs Internet. Die Macher zielten darauf ab, aktuelle Karten von OpenStreetMap schnell bereitzustellen und auch leicht an eigene Bedürfnisse anpassen zu können.
Das Hauptprogramm von Protomaps ist protomaps.js, ein schneller Renderer für 2D-Vektorkarten, der auch für die Labels in den Karten zuständig ist.
Dabei zeigt die Software die Vektorkarten in der nativen Auflösung des genutzten Clients an. Die dabei erzielte Geschwindigkeit soll der von rasterbasierten Slippy Maps entsprechen. Protomaps steht unter der BSD-3-Lizenz und Sie finden es wie auch alle weiteren Protomaps-Komponenten auf GitHub.
Das Serverless-Format PMTiles
Zu Protomaps gehört auch PMTiles, ein Serverless-Format für Karten-Tiles. Das arbeitet nicht wie MBTiles mit SQLite, sondern mit HTTP Byte Serving.
Das Format PMTiles ist dafür ausgelegt, dass sich Vektorkarten nicht nur über einen eigenen Server, sondern auch ohne ein kompliziertes Backend über Cloud-Anbieter wie AWS laden lassen.
Die nötigen Vekorkarten können dabei fertig gerendert im PMTiles-Format herunterladen werden. Dabei aktualisiert Protomaps die OpenStreetMap-Daten einmal pro Minute, damit individuelle Änderungen schneller verfügbar sind. Die Entwickler können aber auch alternativ auf eine Web API zurückgreifen
Als letztes Teil des Protomaps-Pakets kommt noch OSM Express ins Spiel, mit dem lokale Vektorkartendaten in dem geschwindigkeitsoptimierten .osmx-Format abgespeichert werden. Dadurch können die Nutzer zum Beispiel gezielt Ausschnitte einer Karte regelmäßig aktualisieren oder auch auf alle OSM-Objekte in einer geografischen Region zugreifen.
Noch steckt die Entwicklung von Protomaps in einem frühen Stadium, aber jede der Komponente ist schon im produktiven Einsatz. Mehr Details zu Protomaps finden Sie in einem Blogeintrag der Entwickler.