Статьи

Маршрутизация с помощью GraphHopper и Java на Raspberry Pi

GraphHopper — это быстрый и открытый движок маршрутизации, написанный на Java. Источники на Github, и вы можете попробовать это онлайн . Несколько месяцев назад сама Java была портирована на Raspberry Pi (ARM), и в последних версиях даже предустановлен JDK от Oracle . Так что нет причин не пытаться использовать GraphHopper на Raspberry Pi, так как на этой неделе появилось мое устройство! Я использовал NOOBS и установил Raspbian, где уже были установлены JDK от Oracle и git-core. Если у вас более старая версия, сделайте:

sudo apt-get install oracle-java7-jdk

Теперь сама установка GraphHopper выполняется за 4 простых шага:

  1. git clone https://github.com/graphhopper/graphhopper/
  2. # Избегайте опции «-server» и уменьшите использование памяти по умолчанию для graphhopper. Например, для Берлина вы можете сделать:
    export JAVA_OPTS = «- Xmx100m -Xms100m»; CD Graphhopper
  3. ./graphhopper.sh import europe_germany_berlin.pbf
    # Это займет немного времени, и если оно будет завершено, вы увидите «[INFO] Started Jetty Server»
    # Под капотом это сделает:
    # 1. получить maven
    # 2. скомпилировать GraphHopper (занимает 10 минут !?)
    # 3. установите меньшую площадь «Берлин» (6 минут для импорта, 5 минут для подготовки СН). Этого можно избежать, если вы создадите файлы GraphHopper на своем рабочем столе, что намного быстрее, а затем скопируете их в Raspberry Pi с помощью scp -r europe_germany_berlin-gh pi @ raspberrypi: / home / pi / graphhopper /
    # 4. запустите сервер на локальном хосте: 8989
  4. Теперь вы можете получить доступ к запущенному серверу через браузер, например, из самого Raspberry Pi с помощью iceweasel или chromium-browser
    http: // raspberrypi: 8989 /
    Если это не работает, попробуйте http: // localhost: 8989 / или подключите Pi к вашей локальной сети. и получить доступ к GraphHopper web с вашего рабочего стола по тому же URL.

Вот скриншот — через плитки от Lyrk :

graphhopperpi

Raspberry Pi имеет меньше ограничений по сравнению с Android!

  • У вас есть JDK 7 от Oracle, а не Dalvik, который поддерживает только Java 5. Таким образом, вы можете даже создать файл GraphHopper («импорт») непосредственно на мобильном компьютере, хотя это будет медленнее (в 5–10 раз) по сравнению с моим ноутбуком. Также вы можете из коробки запустить и использовать сервер на машине. Совместное использование маршрутизации GraphHopper на Android в настоящее время не является готовым решением, но нужно также иметь возможность заставить его работать.
  • У вас есть полностью рабочий дистрибутив Debian с хорошими возможностями ‘apt-get’
  • Вы можете использовать всю доступную оперативную память, а не только 32 МБ, что является ограничением для каждого приложения на Android. Так что маршрутизация будет быстрее, потому что до 500 МБ (ограничение на Raspberry Pi) вы можете использовать настройки GraphHopper в памяти или, если использовать более медленную настройку MMAP, тогда Raspberry Pi будет загружать больше данных в оперативную память по сравнению с Android.
  • На Android вы можете иметь автономные карты через проект mapsforge . Вы не можете сделать то же самое для Raspberry Pi, но теперь есть ветка под названием «спасение», которая позволяет вам иметь автономные карты для Raspberry Pi. Эта ветка уже работает, но еще не выпущена.
  • Для полных карт вам понадобится отдельный монитор — например, это здесь? И поиск адреса, который в настоящее время возможен только через онлайн-сервис.

Оригинальное сообщение на karussell.wordpress.com