OpenStreetMap

karussell's Diary

Recent diary entries

Sometimes ways have duplicate nodes in them. I.e. instead of:

A-B-C

the node IDs are:

A-B-B-C

I’m unsure how this can happen. Probably a software bug in some OSM client. I’m not really into mapping but I always wanted to reduce the warnings we print and so I took the chance yesterday and fixed every single duplicated node (only in ways used as roads - which resulted in approx. 100 problematic ways).

It was rather easy to get rid of this as GraphHopper prints the problematic way IDs while the import and in JOSM you can download way information directly via Ctrl+Shift+O. Then you click Shift+V (Verify), then you click fix, then you click Ctrl+Shift+Up and Enter. I reviewed the result on openstreetmap.org again and proceeded with the next way (Ctrl+F4 to restart in JOSM). Sometimes multiple nodes were duplicated but then you only need to verify the way again, after you fixed it.

To my surprise and thanks to JOSM keyboard shortcuts, it took not even 2 hours :) … see all the changes here.

There were also 2 or 3 mappers who seemed to have the same goal and already fixed a few of these bugs.

A new release is ready for download. Read more about this release here

turn cost support for the speed mode

A new release is ready for download! Several new features and changes were made. For example the isochrone module is now open source! Read more about this release here

isochrone preview

We’ve released a new version 0.10 of our open source routing engine GraphHopper. Read here for more information.

new path details feature

We’ve released a new version 0.9 of our open source routing engine GraphHopper. Read here for more information. Also the ‘car’ profile is now available for GraphHopper on openstreetmap.org

public transit routing

We’ve released a new version of our open source routing engine GraphHopper. Read here for more information

Map Matching screenshot

We’ve released a new version 0.7 of our open source routing engine GraphHopper. Read here for more information

Round trip example

Releasing GraphHopper 0.6

Posted by karussell on 9 February 2016 in English (English).

A new version of the routing engine GraphHopper appeared!

Read more here

alternative routes with GraphHopper

Units in OpenStreetMap

Posted by karussell on 1 November 2015 in English (English).

The main question is: should OSM prefer more concise data if possible and move complexity to the editor? Read the full post here

Releasing GraphHopper 0.5

Posted by karussell on 12 August 2015 in English (English).

Today we are proud to release version 0.5 of our open source road routing engine GraphHopper. Try it out on GraphHopper Maps and read more

graphhopper maps route planner

We’ve improved the GraphHopper core and the GraphHopper Directions API which now includes route optimization.

Handling elevation data and combine it with OpenStreetMap can be a pain. And indeed it was when we implemented this for GraphHopper roughly one year ago. But we really wanted to make it easy for our users. And it is not only efficient but also easy to import and show the data as well as using this data while routing. Read here for more details

Elevation Data Widget

Today we’ve released version 0.4 of GraphHopper.

(excerpt) Highlights of GraphHopper 0.4:

  • The flexibility mode now supports turn costs and restrictions
  • GraphHopper is able to run offline in the browser via TeaVM since 0.3 but now we can also route offline on iOS too!
  • The bidirectional A* avoids heuristical results and is now the fastest algorithm for the flexibility mode
  • Via-point support for the web UI, contributed by rbraband

Read more here

Please give feedback on the mailing list or via a new Github issue.

Today we’ve released version 0.4 of GraphHopper

(excerpt) Highlights of GraphHopper 0.4: * The flexibility mode now supports turn costs and restrictions * GraphHopper is able to run offline in the browser via TeaVM since 0.3 but now we can also route offline on iOS too! * The bidirectional A* avoids heuristical results and is now the fastest algorithm for the flexibility mode * Via-point support for the web UI, contributed by rbraband ….

Please give feedback on the mailing list or via a new Github issue.

I know that HOT and other community processes improve exactly one area and I also know that paying people for OSM could be seen strange under certain circumstances.

But sometimes there is a need for a company which wants to improve exactly one area. E.g. to make self driving cars less dangerous with OSM data in one area or showcasing an OSM based application in the companies its district or whatever.

So, is there a website, company or process where one could ask for such specific area improvements for OSM? And what problems you see if there would be such a solution?

Please read on our blog for the full announcement.

Long and possible incorrect street names in Russia?

Posted by karussell on 7 November 2014 in English (English). Last updated on 8 November 2014.

I’m running world wide imports for the route planner GraphHopper and due to space savings I allow street names with a maximum length of 255 characters. This was all fine until a few months. Now I get lots of lengthy stuff in Russia - possible automated imports? What is going on there and should one fix this ugly stuff? If yes, how? I can find out the way ids if someone is interested.

E.g. the first one is here

  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Бывалки — Ширково, 66Н-0830
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Взглядье — Ивано — Гудино — Добрушино, 66Н-0806
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Сельцо, 66Н-1407
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Урубок, 66Н-1443
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Стригино, 66Н-1428
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Сельцо, 66Н-1407
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Хиславичи — граница Республики Беларусь» — Владимировка, 66Н-2208
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Павлово, 66Н-0405
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Пересветово, 66Н-1049
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Смогири — Болдино — «Витязи — Духовщина — Белый — Нелидово», 66Н-1019
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Бояды, 66Н-1429
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Сельцо, 66Н-1407
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Хиславичи — граница Республики Беларусь»— Большие Хутора, 66Н-2210
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Битюково», 66Н-0818
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Щеплево, 66Н-0809
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Щеплево, 66Н-0809
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Чемуты — Полонец, 66Н-0823
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Битюково» — Шарапово — Иванево, 66Н-0815
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Шутовка, 66Н-1010
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Смогири — Болдино — «Витязи — Духовщина — Белый — Нелидово», 66Н-1019
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Попково — Павлихино, 66Н-1027
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Смогири — Болдино — «Витязи — Духовщина — Белый — Нелидово», 66Н-1019
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Бельчевицы, 66Н-1037
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Ломейково, 66Н-1030
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Святая Яровня, 66Н-1038
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Попково — Павлихино, 66Н-1027
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Ладыжино — Красильники — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)», 66Н-1526
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Ладыжино — Красильники — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Бабичи, 66Н-1527
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Жуково — Самолюбово» — Мазальцево — Фефелово» — Рязаново, 66Н-1877
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Жуково — Самолюбово — Стабна — Фефелово» —Новая Деревня, 66Н-1831
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Хиславичи — граница Республики Беларусь» — Новая Рудня, 66Н-2207
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Жуково — Самолюбово» — Мазальцево — Фефелово» — Лаврово, 66Н-1852
  • «Беларусь» — от Москвы до границы с Республикой Беларусь (на Минск, Брест)» — Жуково — Самолюбово» — Мазальцево — Фефелово» — Зыколино, 66Н-1851
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Взглядье — Ивано — Гудино — Добрушино, 66Н-0806
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Павлово» — Сивцево, 66Н-0417
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Битюково», 66Н-0818
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Хиславичи — граница Республики Беларусь» — Новая Рудня» — Шатиловка, 66Н-2214
  • «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Тростино — Петрополье — Хиславичи» — Думаничи — Торчиловка — Шанталово, 66Н-1418
  • «Москва — Малоярославец — Рославль до границы с Республикой Беларусь (на Бобруйск, Слуцк)» — Спас-Деменск — Ельня — Починок» — Сельцо, 66Н-1407
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Бельчевицы, 66Н-1037
  • «Смоленск — Вязьма — Зубцов (участок Старой Смоленской дороги Смоленск — Вязьма)» — Тюшино — Нетризово — «Брянск — Смоленск до границы Республики Беларусь (через Рудню, на Витебск)» — Пересветово, 66Н-1049

Today we’ve released GraphHopper 0.3. Read the full announcement here.

Screenshot

BTW: In the screenshot you see lyrk tiles

Better Address Search with a quick JS hack

Posted by karussell on 27 January 2014 in English (English). Last updated on 14 May 2014.

Update

We are now using a geocoding solution with real address suggestions. Based on photon.

Address Suggestion

Old text

If you search for a location on openstreetmap.org you’ll probably miss some autocompletion. Autocompletion requires some server resources and when you have a normal SQL database (as it is the case for normal nominatim installation) this is nearly impossible. There is an Open Source solution called photon using the nominatim DB for feeding and for the search it uses Apache Solr. I highly recommend looking at this.

But if you just want to use nominatim I developed a bit JavaScript magic which displays the possible entries if you click the small triangle in the right corner of every input. And then if you hover the mouse over one entry it will immediately display the map. Test it here and sources are here - it stands under Apache License and requires jQuery Autocomplete.

address search via js

BTW: Maybe you have some time to use this into the latest effort that wants to have routing on the main osm.org site? Check this fork!

I just blogged about it here

Overview

Today we’re releasing version 0.2 of our Open Source road routing engine GraphHopper written in 100% Java.

Faster!

  • All algorithms are faster due to bug fixes and fine tuning
  • A preparation is necessary for our optional speed-up technique called Contraction Hierarchy. This preparation is also faster.

Further!

  • We finally fixed GPS-exact routing so you don’t have to workaround a junction-to-junction results

More exciting news will follow …

Have fun and try GraphHopper Maps with world wide coverage for pedestrians, cars and bicycles! You need support? Have a look at our enterprise options!

Notes: