View on GitHub

The web tile maps viewer

Download this project as a .zip file Download this project as a tar.gz file

GaladrielMap

Веб-приложение – просмотрщик растровых онлайн карт. Приложение может быть размещено на слабом сервере типа RaspberryPi или на чём-то типа NAS и предполагает использование с достаточно производительных клиентских устройств, преимущественно мобильных. Желательно использовать планшет с большим экраном, однако пользоваться с телефона тоже вполне реально. На клиентском устройстве требуется только наличие браузера – никаких приложений устанавливать не нужно.
Веб-приложение разработано в основном для работы с GaladrielCache в качестве хранилища карт, однако может работать с любым OSM-like источником растровых тайлов.

Предполагается, что приложение будет использоватся в небольшой локальной сети, например – в бортовой сети катера, яхты или кемпера, поэтому никакого разграничения доступа к функциям не предусмотрено.

Автор пользуется GaladrielMap на своей яхте Galadriel, загружая приложение с wi-fi маршрутизатора под управлением OpenWRT в качестве сервера.

Внимание! Автор не несёт ответственности за последствия использования GaladrielMap для навигации!

v. 1.3

screen
Приложение GaladrielMap создано на основе замечательных проектов многих, без сомнения, выдающихся авторов, поэтому необходимо вручную установить большое количество зависимостей.

Возможности:

  1. Показ одной OSM-like растровой онлайн карты, или
  2. С GaladrielCache – произвольного количества карт как по-отдельности, так и наложенными друг на друга.
    stacked maps В GaladrielCache сразу есть доступ к Open Sea Map и Open Topo Map, а также возможность создавать собственные конфигурирации для доступа к другим онлайн картам.

  3. Показ скорости, направления и координат по информации от gpsd и отрисовка текущего пути, если таковой пишется где-нибудь в формате gpx:
    Positioning

  4. Показ маршрутов и точек достопримечательностей из файлов в форматах gpx, kml и csv:
    Display routes and POIs

  5. Планирование маршрута на клиентском устройстве, с возможностью сохранить маршрут на сервере в формате gpx:
    Creating a route

  6. Обмен координатами через буфер обмена, переход по координатам, введённым с клавиатуры, получение координат точек достопримечательностей.

  7. Прогноз погоды от Thomas Krüger Weather Service (только с GaladrielCache версии 1.3 или больше)
    Weather forecast

  8. Отображение информации AIS:
    AIS info
    Отображение информации AIS отключено по умолчанию. Его можно включить, раскомментировав строку с переменной $aisServerURI в файле params.php.

  9. Управление загрузчиком GaladrielCache:
    Control Loader

  10. Приборная панель.
    dashboard.php – отдельное приложение, предназначенное для показа некоторых имеющихся приборов на очень слабых и/или медленных клиентских устройствах. Например, на читалке электронных книг с E-ink экраном: Dashboard velocity Dashboard heading
    Не используется никакого хитрого javascript и никаких замысловатых стилей. Показывается истинная скорость, истинный или магнитный курс и глубина. Разумеется, соответствующие приборы должны быть подключены к gpsd. Только с приёмником геопозиционирования доступны истинный курс и скорость.
    Можно выставить сигнализацию на глубину и скорость. Необходимо указать в настройках браузера разрешение воспроизводить звук.

Совместимость

Требуется Linux на сервере и более-менее современный браузер на клиентском устройстве.

Установка и конфигурирование:

Требуется веб-сервер под управлением Linux с поддержкой php. Скопируйте приложение и установите указанные ниже зависимости в желаемое место на веб-сервере.
Укажите пути и другие параметры в params.php
При необъодимости, в файлах askGPSD.php и askAIS.php укажите адрес и порт, используемые gpsd. Кроме того, в файле askAIS.php может понадобится указать имя исполняемого файла интерпретатора php.

Зависимости и благодарности

Для совместимости со старыми браузерами, но не обязательно:

Для установки зависимостей нужно сделать локальную копию каждого проекта в каталоге приложения так, как это описано на сайте проекта, а потом, при необходимости, откорректировать пути в index.php

Аварийный набор

Однако, всё, что необходимо для установки приложения, включая зависимости, находится в архиве в каталоге emergencykit/. Нужно просто распаковать.

Ещё благодарности

gpsd

GaladrielMap получает положение, данные AIS и приборов от gpsd с помощью askGPSD.php и askAIS.php. Если необходимо, укажите в этих файлах адрес и порт, используемые gpsd. Исходно там умолчальные для gpsd localhost и 2947 порт.
Для сбора данных AIS используется демон gpsdAISd, который запускается в askAIS.php. Поэтому в этом файле может понадобится указать имя исполняемого файла интерпретатора php.

Установка и конфигурирование gpsd описаны в документации к gpsd.

Текущий путь

Для записи текущего пути на сервере можно использовать приложение gpxlogger из комплекта gpsd-clients, имеющегося в дистрибутивах, но устанавливаемого отдельно. GaladrielMap может показывать текущий путь по мере его записи.
Если запись текущего пути внезапно прервалась, и на диске остался некорректный файл gpx, его можно поправить, запустив

php chkGPXfiles.php

CSV

Текстовый файл в формате Comma-Separated Values – самый простой способ заранее подготовить список интересующих точек (POI) для предстоящего путешествия. Для создания такого файла нужен только текстовый редактор, хотя удобней будет любой табличный процессор.
Первой строкой в csv файле должны быть наименования колонок. GaladrielMap понимает следующие наименования:
"number","name","description","type","link","latitude","longitude"
хотя минимально-полезный набор состоит из
"name","latitude","longitude"
В файле возможны и другие колонки, но они, скорее всего, на карте показаны не будут.
Широту и долготу можно указывать почти в любом формате, как в градусах, минутах и секундах – 61°04’50”N, например, так и в десятичных градусах.
Примером реального использования файла csv для обмена информацией о маринах и природных стоянках на озере Сайма в Финляндии может быть начинание SaimaaPOI. Там же имеется файл csv с точками фотографирования с ссылками на фотографии – тоже хороший пример.

Ввод и получение координат

Для получения текущего положения нажмите на цифры координат на панели Dashboard . Координаты будут скопированы в буфер обмена. Можно вставить их в sms, мессенджер или письмо.
Аналогично, координаты маркированной точки на карте могут быть получены нажатим на наименование точки в всплывающем окне этой точки.

Получить координаты произвольной точки на карте можно, открыв панель Handle route. Координаты перекрестия будут отображаться в текстовом поле. Если же, наоборот, ввести в это поле какие-либо координаты (широту и долготу, почти в любом формате), и нажать кнопку рядом – карта переместиться так, что перекрестие будет указывать в эту точку. Кнопки над текстовым полем помогут ввести знаки градусов и минут.

Создание и редактирование маршрута

Панель Handle route содержит инструменты для планирования и редактирования маршрута. Маршрут создаётся на локальном устройстве, сохраняется на нём (нажатием на линию вне точек), а при необходимости – может быть сохранён на сервере в формате gpx.
Также этот инструмент может быть использован для редактирования существующего маршрута в формате gpx, загруженного с сервера через панель Handle route Например, штурман в тёплой рубке рисует маршрут на своём ноутбуке в GaladrielMap, и сохраняет его на сервере. Рулевой под ветром и дождём немедленно загружает этот маршрут на свой планшет, а штурман тем временем может его уточнить и продолжить. Сообщив рулевому об изменениях, конечно.

Однако, инструмент имеет только самую базовую поддержку gpx. Так, <metadata> не поддерживаются, любимые GARMIN <extensions> тоже не поддерживаются. Поэтому следует быть осторожным при редактировании сторонних файлов gpx.

Поддержка

За чашку кофе через PayPal можно получить консультации по адресу galadrielmap@gmail.com