avaharu (avaharu) wrote,
avaharu
avaharu

Очумелые ручки: сделай сам GPS карту

Добавление от 21.03.2012: Да здравствует прогресс!
OsmAnd
Maps With Me
и все написанное ниже можно забыть.



Начну, пожалуй, с того, что выскажу несколько совершенно банальных, на мой взгляд, утверждений. Для прогулки по незнакомому городу, в принципе, достаточно хорошего путеводителя и карты. GPS навигатор с картой города безусловно не является предметом первой необходимости, но использовать его вместо бумажной карты очень удобно. Карты для автомобильных навигаторов, которые легко купить или найти в интернете, не лучший вариант для пеших прогулок.

Мне не нужна карта автодорог всей Европы. Мне не нужна автопрокладка маршрута от точки «А» до точки «Б». Мне не нужен вид на карту «сбоку» и подсказки «через 300 метров направо». Мне не нужны координаты автозаправок, полицейских радаров и информация о трафике. Я хочу, выйдя из метро в незнакомом месте, не выискивать таблички с названиями улиц, а нажать на кнопку и увидеть, куда я вышел и в какую сторону должен идти. Я с удовольствием избавлюсь от необходимости следить по карте за поворотами автобуса и считать остановки, чтобы не проехать нужную. Традиционные квесты «попробуй-ка найти эту улицу на карте» после того, как от души побродил по узким кривым переулочкам старого города и обнаружил, что вышел совсем не туда, куда хотел, при наличии навигатора упраздняются. Вопросы типа «это уже тот перекресток, на котором я хотел повернуть, или надо идти до следующего?» тоже.

Самый удобный для меня вариант GPS карты должен быть максимально похож на обычную туристическую план-схему, на которой обозначены дороги, застройка, парки с прудами и тропинками, станции метро, церкви, музеи, театры, и отличаться от бумажной карты только наличием указателя моего текущего положения. Поэтому мой выбор — растровые карты (обычные картинки в любом стандартном формате — jpeg, tiff, gif, bmp) и программа OziExplorer в двух версиях: для PC и для КПК.

Процесс изготовления карты под Ozi настолько прост, что если готовую сходу «нагуглить» не удалось (в принципе, готовых карт в сети полно, только почему-то именно то, что нужно, и тогда, когда нужно, фиг найдешь :) ), легче будет сделать ее самому.


Шаг первый: раздобыть подходящую картинку с картой.

Если карта есть в бумажном виде, сканируем ее с таким разрешением, чтобы самый мелкий шрифт легко читался, но не слишком высоким, чтобы размер карты не получился неоправданно большим, и сохраняем в формате без потерь — bmp или tiff. В jpeg нельзя, портить качество и читаемость текста артефактами сжатия ни к чему. Картинка в bmp это рабочий, промежуточный вариант, так что на получившийся размер файла внимания не обращаем.

Если бумажной карты нет, ищем картинку в интернете. Для больших городов это обычно не проблема, главное найти карту покрупнее и покачественнее. Например, погуглив «budapest map», на первой же странице результатов находим два подходящих источника для будущей карты:

http://www.iit.bme.hu/hungary/budapest/cgi-bin/search_tkp
http://www.hot-maps.de/europe/hungary/budapest/homeen.html

На первом сайте карта порезана на 21 фрагмент. Выкачиваем их все и «склеиваем» в фотошопе. Процедура несложная, хотя и несколько муторная и требующая определенной аккуратности. Если какой-то из фрагментов стыкуется с соседним недостаточно точно (например, он отсканирован с небольшим поворотом относительно соседнего), не забываем про волшебную галочку «Show transform controls», дающую возможность подкорректировать положение каждого из углов отдельно. В результате получаем большую карту города размером 5821 на 5436 пикселей. Единственный ее недостаток — мелкий, плохо читаемый шрифт, но для общей карты сойдет.





На втором сайте карта центра. Ровно такая, как нужно — подробная и четкая. Она, правда, сделана на флеше и показывается только небольшими кусочками, так что придется немного повозиться: делаем масштаб покрупнее, распахиваем окно на полный экран, клавишей PrintScreen снимаем скриншоты фрагментов и склеиваем их в фотошопе. Получается идеальная карта центральной части города размером 4396 на 3234 пикселя.





Если хорошую карту не удалось найти ни в бумажном, ни в электронном виде, можно воспользоваться и Google Maps, в конце-то концов.


Шаг второй: превратить картинку с картой в карту для GPS навигации.

Запускаем OziExplorer (версию для PC) и загружаем в него картинку с картой: «Файл» – «Открыть и откалибровать изображение карты» (если картинка в tiff открывается в Ozi с неправильными цветами, конвертируем ее в bmp). Параллельно запускаем Google Earth, находим соответствующее карте место, переключаем формат отображения координат («Tools» – «Options» – «3D View» – «Show Lat/Long») в «Degrees».

OziExplorer позволяет задать до девяти калибровочных точек. Кашу маслом не испортишь, поставим все девять: четыре поближе к углам, одну в центр и четыре крестом между центром и сторонами.

Находим на карте в той зоне, где хотим поместить калибровочную точку, какой-нибудь характерный объект (например, перекресток), находим его же в Google Earth, наводим на него курсор, записываем координаты, ставим в Ozi калибровочную точку в выбранном месте карты и вводим определенные в Google Earth координаты.







Обратите внимание: дробная часть градуса пишется с точкой в начале, число без точки будет воспринято как целое число минут.

Повторяем процедуру для всех точек, проверяем, нажимаем кнопку «Сохранить». Получаем файл с расширением map: текстовый файл, содержащий данные о карте и калибровочных точках.

В принципе, карта для OziExplorer готова. Файл с картинкой и соответствующий map файл можно скопировать на КПК и все будет работать, только вот картинка в bmp или tiff занимает много места, да и подтормаживать она будет, поскольку Ozi придется читать ее целиком.


Шаг третий: конвертировать картинку в формат OziExplorer.

Запускаем Img2Ozf (если готовим карту для КПК, пользуемся третьей версией, она делает файлы в формате ozfx3, а если нужна карта в формате ozf — второй), выбираем папку, в которой лежат исходная картинка и map к ней, помечаем ее галочкой и жмем кнопку «Convert Maps». После окончания конвертации видим в папке новую пару файлов: картинку с расширением ozfx3 и новый map (с добавленным «_ozf» в конце имени), отличающийся от исходного только тем, что содержит ссылку не на .bmp, а на .ozfx3 файл.

Последний штрих (необязательный): прибиваем старый map, убираем «_ozf» из имени нового, открываем его любым текстовым редактором (например, Блокнотом) и видим в начале приблизительно такое:

OziExplorer Map Data File Version 2.2
Budapest center.bmp
D:\_MISC\_Инфа к поездкам\Будапешт\Budapest center.ozfx3


Вторая строка — имя карты, третья — ссылка на файл картинки. Делаем имя более осмысленным и убираем путь к файлу за ненадобностью (хотя будет работать и так, Ozi путь проигнорирует, если оба файла лежат в одной папке).

OziExplorer Map Data File Version 2.2
Budapest: city center
Budapest center.ozfx3


Все, карта готова. Копируем ozfx3 и map на КПК, открываем map в OziExplorer, проверяем.


Если карту нужно сделать под смартфон (в формате ogf2), или же наоборот, если есть готовая карта в ogf2 и из нее нужно вытащить картинку, чтобы потом переделать ее в ozfx3 под КПК, можно воспользоваться SmartCom OGF2 Converter и не забыть после конвертации подкорректировать ссылку на файл картинки в map (поменять расширение).
Tags: gps
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments