OpenStreetMap logo OpenStreetMap

happygo's Diary

Recent diary entries

vacation mapping #2

Posted by happygo on 13 January 2020 in English.

panorama-25 View of manhattan southern tip, from empire state building

Home: is it where I sleep each night, or where I dream of? Spectre of globalism, shadow of the coastal elite - I may be angemeldet in Berlin, but New York will always feel something like home. Inevitably, I’m in the city about once a year, frequent enough to keep up friendships, but infrequent enough to inspire nostalgia for the last visit. It’s a place perpetually in a simultaneous state of metamorphosis and stasis. Gotham, or Girls? Sex and the city Carrie voiceover: “I couldn’t help but wonder, where were all the NYC mappers?”

See full entry

Location: Manhattan Community Board 3, Manhattan, New York County, New York, United States

Viewing OSM data quick'n'easy in QGIS

Posted by happygo on 29 November 2019 in English.
  1. export and save data from openstreetmap.org
    • map.osm
  2. open qgis
  3. in qgis top menu, select Vector > OpenStreetMap > Import Topology from XML…
    • “Input XML file” < map.osm
    • rename “Output Spatialite DB file” to something unique, unique.osm.db
    • rename “Connection name” to something unique, unique_connection
  4. in qgis top menu, select Vector > OpenStreetMap > Export OpenStreetMap Topology to SpatiaLite…
    • “Input DB file” < unique.osm.db
    • Select the “Export type” that you’re interested in
    • Put a meaningful name in “Output layer name”
    • Hit “Load from DB”, and select/deselect the export type features with the tags you’re interested in
    • Hit “OK”
    • Repeat for all OSM feature types you’re interested in
  5. Pan around and inspect the features
    • Select layer to inspect in the “Layers Panel”
    • View specific features with the “Identify Features” tool, ctrl + shift + i

Vacation mapping

Posted by happygo on 23 August 2019 in English.

Avoid the crowds and tripadvisor, a vacation is only an adventure if you find the escape velocity of your known universe and reach it, and you’ll find outside that, another version of yourself that just might follow you home.

We had seen the soaring ceilings of the Hagia Sofia, I was already used to the chingchonglinglongs from shopkeepers in the Grand Bazaar, we went to the Blue Mosque on a day it was closed to non-believers, we’d eaten homemade sigarabörek by her aunt for dinner, we’d taken the ferry to the tip of the Asian continent… It was day 3 of Istanbul, and my best friend had a family engagement that night. I wasn’t brave enough to venture back to the Asian side to visit a nightclub on my own, and had been advised against going out by myself anyway.

What else do you do in a big, unknown city on a Friday night?

See full entry

Location: Çeliktepe Mahallesi, Kâğıthane, Istanbul, Marmara Region, Turkey

Wir haben gerade v5.6 der Open Source Routing Machine (OSRM) veröffentlicht. Wie gewohnt mit Dokumentation, NodeJs Bindings und einem osrm/osrm-backend:v5.6.0 Docker Image. Mehr Details gibt es hier. Sieht auch die Release Notes und den kompletten Changelog.

Was ich in diesem Beitrag vorheben möchte ist das Hauptfeature des 5.6 Releases: Die Trennung von Geschwindigkeiten und Kantengewichten

Bis zum 5.6 Release konnten Nutzer nur die Geschwindigkeiten per Lua Profile anpassen and diese basierend auf Tags und Präferenzen verändern. Die Routenplanung hat dann den schnellsten Weg gefunden und dabei die Zeit minimiert.

Allerdings gibt es klare Fälle in denen Nutzer bestimmte Strassen vermeiden möchten: schmale Gassen und Passagen über die normalerweise nicht gerouted werden sollte. Bisher konnten Nutzer diese Wege entweder komplett aus dem Strassennetz entfernen oder aber die Geschwindigkeiten künstlich herabsetzen. Die Geschwindigkeiten zu modifizieren hat jedoch einen gravierenden Nachteil: wenn die Routenplanung nun doch über eine solche Strasse führt sind die Ankunftszeiten falsch!

Was wir stattdessen benötigen ist eine Trennung von Geschwindigkeiten (und damit Reisezeiten welche die Routenplanung aggregiert) und Kantengewichte auf denen die Routenplanung optimiert. Mit dem 5.6 Release haben wir diese grundlegende Trennung!

In den Profilen können Nutzer nun:

  • Die Geschwindigkeiten weiterhin basierend auf Tags setzen um realistische Ankunftszeiten zu erhalten und
  • Spezielle Strassen vermeiden indem Kantengewichte unabhängig zu den Geschwindigkeiten verwendet werden.

Zusätzlich erlaubt uns die Trennung von Geschwindigkeiten und Kantengewichten die Handhabung von access=destination und ähnlichen Tags, die es erlauben die Strasse nur zu verwenden wenn sich das Ziel dort befindet. Ein typisches Beispiel sind Gated Communities durch die Nutzer nicht gerouted werden möchten, ausser sie wollen explizit ihre Reise dort enden.

See full entry

Location: Mitte, Berlin, Germany

We’ve just released version 5.6 of our beloved Open Source Routing Machine (OSRM). The release comes with documentation, NodeJs bindings and a osrm/osrm-backend:v5.6.0 Docker image for an easy setup. More details here. See the Release Notes and the Full Changelog for more details.

What I want to highlight in this post is the 5.6 release’s main feature: Making Travel Time and Edge Weights Independent

Up until the 5.6 release users were able to adjust way speeds based on tags and their preferences via user-provided Lua scripts. The routing engine then did fastest path routing minimizing for duration.

Now there are use-cases for which you want to penalize certain ways: think alleys or small roads which you don’t want the routing engine to prefer. Before the 5.6 release all you could do was to either discard those ways completely or adjust their speeds and make them artificially slower. Adjusting speeds sounds like the way to go, but if the routing engine then really needs to route you over such a way your ETAs will be off by the adjusted amount.

What we instead need is a split between travel time the routing engine aggregates along the way and edge weights the routing engine minimizes. With 5.6 we finally made that major architectural switch.

In your profiles you can do both now:

  • Fine-tune way speeds based on tags to make for great and realistic ETAs and
  • Penalize ways by setting edge weights independently of speeds.

In addition we can handle restricted ways now, too. By restricted ways I mean access=destination and similar which you are only allowed to travel on if you are going to this area. A typical example are gated communities which you don’t want to get routed through except you explicitly want to go there.

See full entry

Location: Mitte, Berlin, Germany