Самостоятельное изготовление карт для GPS-приемников

Вместо вступления

Давно это было. Вроде как аж в 1999 году.

Середина лета, Южный Урал, лес. Мы в команде из четырех человек путешествуем с небольшим оттенком экстрима по горам. То ли по молодости, то ли по неопытности решили мы совершить марш-бросок на одну из тамошних вершин налегке (в таких случаях вещи тщательно прячутся, с собой берется только самое необходимое: немного еды на перекус, фонарик, спички). Как-то вот не дрогнуло сердце, что 40 километров без тропы — это несколько крутовато. Не дрогнуло, поэтому пошли...

Средства для навигации, являющиеся в городских условиях удобным, но не всегда обязательным девайсом, «на целине» становятся действительно важными — в том числе и для спасения собственной жизни.

Первой компанией, поставившей выпуск навигаторов «на поток», стала Garmin. Ее устройства до сих пор наиболее востребованы на рынке.

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

Еще вспоминается: около полуночи бредем мы друг за другом по болоту. До этого скакали по валунам и прилично вымотались. И уже не волнует, что сами мы промокли до нитки, уже не страшно упасть со всего размаху в это болото, да сбились со счету, в который раз перепрыгиваем через очередной ручей... А потом была ночь, а ночью был заморозок. Температура упала ниже нуля, идти мы больше не могли, да и непонятно было, куда идти. Синими скрюченными пальцами ломали ветки елей и пытались жечь костер. Пробовали спать — не получалось. Так, может быть, часок забытья...

К чему этот рассказ? К тому, что сейчас это приключение с большой долей вероятности не состоялось бы. Однако когда речь заходит о полезности хорошей карты или о полезности GPS, я всегда вспоминаю именно эту ночь, именно то далекое утро и ту обледенелую мокрую траву по пояс, по которой мы ранним утром вышли к нашим рюкзакам. Вещи приобрели тогда особую ценность, и среди всех прочих вещей — средства для навигации.

Суть вопроса

Речь пойдет о создании карт для GPS-навигаторов. Думаю, ни для кого не будет открытием, что с картами в нашей стране всегда было туго. До недавнего времени даже бумажные карты более-менее подробного масштаба являлись государственной тайной, и достать их было очень трудно. Электронные карты, судя по всему, наследуют эти проблемы. К слову сказать, сами GPS-навигаторы тоже подвергались (частично и до сих пор подвергаются) всевозможным гонениям.

Что может себе позволить пользователь, только что купивший навигатор с картографическими возможностями?

Если речь идет о девайсе под названием Garmin, то, как правило, в нем уже имеется карта той области, где прибор куплен. Карта эта — самого общего назначения, средней детализации, в общем-то пригодна для рыбаков или охотников. В других навигаторах ситуация примерно идентична. В любом случае, перед покупкой стоит уточнить, есть ли предустановленные карты.

Будут создаваться специализированные карты, на которых разместятся объекты какого-то определенного типа, например грибные места или места богатого улова, или даже карты с областями повышенной встречаемости летающих тарелок.

Вполне может случиться, что карты не будет никакой. В этом случае можно попытаться купить карту или найти ее в интернете. Искать следует карты в формате IMG, и с помощью программы MapSource загружать их в навигатор. С большой долей вероятности карта будет рабочей, однако качество карт, добытых в Сети, непостоянно. Для других GPS-навигаторов карты будут в других форматах, их описание можно добыть в инструкции к устройству.

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

Тут есть обширное поле для экспериментов. Следует обратить внимание на такие программы, как OziExplorerCE, работающую с растровыми картами, и на Navitel Navigator, предназначенную для использования векторных карт. Карты также можно найти в интернете или купить. Производители Navitel Navigator предлагают обзорную карту России бесплатно и более подробные карты некоторых городов (стоят денег). Растровых карт, подходящих к OziExplorerCE, в Сети на первый взгляд много, но зачастую требуемый регион среди них отсутствует, а большинство из имеющихся требует доработки. Также интересна возможность использования в Ozi спутниковых снимков Google Maps, но применимость этого способа ограничена: снимки не имеют подписей к запечатленным объектам.

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

Многослойная структура карты позволяет отображать на экране навигатора именно то, что интересует пользователя в данный момент времени. Поэтому при движении по магистрали проселочные дорожки будут скрыты, но при съезде на грунтовую дорогу сразу «проявятся».

Процесс самостоятельного создания карты включает несколько этапов. Сначала — сбор информации о регионе. Это будут растровые топографические карты, какие удастся найти, возможно — имеющиеся, но не устраивающие нас векторные (например, та же обзорная карта с сайта Навитела), точки и треки, записанные в этом регионе, точки, найденные в сети, снимки Google maps и т.д. Следующий этап заключается в обработке имеющейся информации, отделении зерен от плевел, проверке качества привязки растровых карт. Затем, сообразно своим целям, планируется сама карта: определяется требуемое количество слоев, какие объекты будут размещаться на карте, а какие — нет, прикидываются интересующие создателя карты границы региона.

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

В создании карт основной трудностью является не собственно отрисовка объектов, а скорее необходимость теоретической подкованности, нужной для оптимально качественной и продуктивной работы. Немалую роль играет процесс организации своего труда. При попытке «шапкозакидательства» высока вероятность того, что результат многочасовой работы окажется средненьким и потребует трудоемкой и нудной коррекции, или даже пропадет полностью.

Насколько актуально собственноручное создание карты? Наверняка в скором будущем все наладится, и карты можно будет покупать, как обычный софт. Уже сейчас есть в продаже достойного качества карты самых востребованных регионов, и их количество постоянно увеличивается. Так что острота вопроса сгладится неизбежно, и, видимо, в ближайшее время.

Но карты будут делать и энтузиасты. Почему? Потому что не бывает ничего абсолютно универсального. Будут создаваться карты специализированные, на которых разместятся объекты какого-то определенного типа, например грибные места или места богатого улова, или даже карты с областями повышенной встречаемости летающих тарелок. Скорее всего, для таких трудов будут использоваться универсальные топографические основы, но они не избавят от необходимости знать матчасть (теоретические основы картографии) и уметь пользоваться инструментарием (ряд программ и программок для работы с растровыми и векторными картами).

Самостоятельное создание GPS-карты — это удел тех, кого в четвертом классе школы на самом деле интересовала география. Это для тех, кто готов знать, что такое датум, альманах и «поперечный Меркатор». Эти люди составляют сообщество увлеченных, которое помогает другим постичь все тонкости мастерства.

Программы для работы с GPS

За рубежом было выпущено несколько программ для работы с картами и GPS. Как правило, при покупке навигационного прибора или этой программы предусматривалась возможность купить и сами карты. Однако территория России на них представлена не была, поэтому для жителей нашей страны этот софт был бесполезен. К тому же большинство этих систем имело закрытые форматы данных, и создать или изменить карту в них было нереально.

В пику им появились продукты, лишенные этих проблем, — в нашей стране, по понятным причинам, тоже. Отрадно, что, пожалуй, лучшая программа такого класса — отечественная.
Это GPSMapEdit Константина Галичского (geopainting.com). Она относится к классу Shareware, имеет бесплатную версию с ограниченным функционалом, однако даже его вполне достаточно для того, чтобы творить. Работает программа на десктопе, написана под Windows. Полная версия добавляет некоторые дополнительные возможности.

Справедливости ради упомяну, что есть аналог этой программы (есть подозрения, что он использует код MapEdit), который работает под Windows Mobile. Это PTGMAP (imocoding.com). C помощью PTGMAP можно править карты прямо в КПК, но это — только для настоящих маньяков.
GPSMapEdit имеет множество инструментов для работы с картами и экспортирует результаты в несколько форматов. Это форматы программ GisRussa и Navitel Navigator, очень схожие между собой и существующие во владениях Windows Mobile, а также форматы Holux и Alan Map, о которых мне мало что известно. C помощью стороннего ПО (cgpsmapper) можно сохранять карты для навигаторов Garmin в формате IMG.

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

Одной из лучших программ (если не самой лучшей) для создания GPS-карт смело можно назвать GPSMapEdit Константина Галичского.

Что называть картой

На самом деле, любой владелец навигатора по сути является создателем своей собственной карты. Все умеют ставить путевые точки. А как именовать процесс сохранения координат в каком-либо формате (пусть это будет даже внутренний формат Garmin), как не созданием карты? Просто в этом случае карта хранит объекты только одного типа — точки, которые отличаются друг от друга лишь надписью (названием). Но даже такая карта выполняет свои функции — она хранит информацию о расположении различных объектов.

Любая карта является проекцией объектов реального мира (дорог, рек, озер, линий электропередач или бензоколонок) на некую плоскость, будь то поверхность листа бумаги или плоскость экрана навигатора.

Трек, записанный при путешествии по лесу, можно трансформировать в объект «тропа» и дать ему подпись «дорога до грибной поляны». Так получится фрагмент карты, который можно будет использовать для повторения своего маршрута.

Любая карта служит одной лишь цели — дать возможность сопоставить расположение в пространстве некоторого объекта (например, владельца навигатора) относительно других объектов (например, дома, где живет владелец). В процессе этого сопоставления появляется возможность получать важную производную информацию (расстояние, которое должен пройти или проехать владелец навигатора до своего дома, расчетное время, когда владелец может оказаться дома, вероятность того, успеет ли владелец к ужину или нет, и многое другое).

Объекты карты

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

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

1. Точка. Это тип объектов обычно конечного размера, который используется в том случае, когда нас интересует только его расположение в пространстве. Точкой можно описать, например, вершину горы, родник, полянку с грибами, кафе с хорошими булочками. Для точки мы можем назначить пиктограмму, которая поможет быстрее увидеть на карте то, что мы ищем. GPSMapEdit и программы, использующие карты, созданные им, определяют большое количество таких значков в различных категориях: населенные пункты, объекты гидрографии, торговые точки, просто метки, морские объекты и много-много чего еще.

2. Линия. Линия используется в случаях, когда нас интересует протяженность объекта, но не интересует его ширина. Это может быть дорога, линия электропередач, горизонталь, улица города, небольшая река и т.п. Количество подобных объектов заметно меньше, чем количество возможных точек, но все же вполне достаточно для того, чтобы не перечислять их здесь все. По своей сути линия — это ряд точек, соединенных прямыми отрезками.

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

Любая карта является проекцией реальных объектов на плоскость.

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

Итак, для того, чтобы разместить на карте некий объект, нам нужно определить, как его изображать — точкой, линией или полигоном, выбрать из списка тип для него, нанести его с помощью инструментов редактирования в ту область, где он должен находиться, и сделать подпись, которая его характеризует.

Эта операция, повторенная множество раз, и занимает основное время при подготовке карты.

Уместно сделать одно замечание. Когда мы рисуем на листе бумаги, мы ориентируемся на отступы кисти от края листа или от предыдущих штрихов, используя привычные меры длины для этих отступов — сантиметры, миллиметры или дюймы. Когда мы делаем то же самое в графической программе — в том же Adobe Photoshop — мы ориентируемся на пиксели и пункты. А когда мы строим карту, мы используем в качестве координат точек реальные координаты географических объектов — в градусах, минутах и секундах. Именно это помогает навигационной программе расположить точку, только что отмерянную чипом навигации (в этих самых минутах и секундах) на том месте, на котором мы ожидаем ее увидеть. Любая карта должна иметь привязку своих объектов к их настоящим координатам. Бумажные образцы для этого используют координатные и километровые сетки, а электронные — умеют пересчитывать координаты, заданные в координатах точек, в пиксели экрана.

Особенности карт для GPS. Форматы карт

Не секрет, что любое изображение на компьютере может быть представлено либо в растровом виде, либо в векторном. Карты тоже являются изображениями, и тоже бывают растровые и векторные.

В мире растра господствует программа OziExplorer. C ее помощью можно «привязать» точечное изображение (будь то отсканированная бумажная карта или спутниковый снимок) к географическим координатам изображенных на нем объектов. Поскольку растровые карты — один из основных источников данных для нас, умение пользоваться OziExplorer’ом обязательно. Обойтись без Ozi можно только в одном случае: если есть возможность заполучить уже «привязанные» карты.

Каждая карта, даже самая подробная, состоит из объектов только трех видов — точек, линий и полигонов.

GPSMapEdit создан для работы с векторными картами. Навигаторы Garmin, программы Navitel Navigator и GISRussa тоже используют векторные данные. Причин тому несколько. Во-первых, такие изображения занимают меньше места. Навигаторы имеют определенную предысторию, и в прошлые времена под карты в тех же Garmin’ах отводилось довольно ограниченное пространство, поэтому исходно был выбран более компактный способ хранения данных. Во-вторых, векторные изображения более удобны для масштабирования. Приблизить или уменьшить карту на экране навигатора — привычная манипуляция в дороге. В-третьих, немаловажно более простое редактирование векторной карты при гораздо меньшем риске потери деталей. Справедливости ради нужно сказать, что можно довольно быстро нанести на растровую карту, уже привязанную для Ozi, интересующие нас объекты и просто сохранить картинку, но для этого нужно неплохо владеть каким-нибудь пакетом для работы с растром, например, тем же Photoshop’ом. Существует и промежуточный вариант: Ozi позволяет вместе с данными привязки сохранить на карте и точки (в векторном виде), чем активно и пользуются сторонники этой программы.

Источники информации

Итак, если уже понятно, откуда берутся исходные материалы для создания растровых карт, настало время перечислить, чем можно пользоваться при сборке векторной карты в GPSMapEdit.

1. Растровые данные. Это могут быть привязанные отсканированные карты, спутниковые снимки Google Maps и любые другие подобные материалы. GPSMapEdit может открывать такие файлы, и их удобно использовать в качестве «подложки» при отрисовке вектора. Выбрав инструмент создания точки, полилинии или полигона, мы просто обводим контуры растрового материала и получаем его копию в векторном виде. При этом в точки наших объектов записываются их географические координаты.

2. Точки и треки, снятые навигатором непосредственно с местности. Большинство приборов позволяют сохранять текущие координаты и передавать их в виде файлов. Эти данные можно загрузить в GPSMapEdit и либо так же, как растр, обвести по контуру, либо конвертировать в тот или иной объект. Например, трек, записанный при путешествии по лесу, можно трансформировать в объект «тропа» и дать ему подпись «дорога до грибной поляны». Так получается фрагмент карты, который можно использовать для повторения своего маршрута.

3 Точки, найденные в интернете, полученные от знакомых в виде числовых координат объектов. Что-то вроде «N49°59.314', E86°28.153' — родник у тропы». По сути это те же самые точки, снятые навигатором, но они были записаны автором в блокнот, а не в файл. Это могло произойти по совершенно разным причинам — например, если навигатор не поддерживал возможность записи координат (такое встречается у старых моделей) или просто автор по каким-то своим причинам больше доверял блокноту. Такие данные тоже можно наносить на карту. Просто ставится точка нужного типа (в данном случае — родник) в произвольном месте карты, а потом в свойствах этой точки указываются точные координаты, после чего она встает на свое законное место.

4. Данные SRTM. Это материал о высотах поверхности Земли, полученный со спутника. С помощью SRTM можно построить сетку горизонталей для интересующей местности. Как и зачем это делать — тема для отдельного разговора в следующих статьях.

Возможно, существуют и другие пути получения исходного материала, но перечисленные здесь на сегодняшний день являются основными. К сожалению, душещипательный рассказ о том, как раздобыть в нашей стране качественную карту местности и привязать ее для OziExplorer с учетом того, что нужно пересчитать датум Пулково-1942 в используемый в GPSMapEdit WGS-84, просто не поместился бы в эту статью, поэтому оставим это на другой раз.

Слои карты. Детализация карты. Информационная чистота карты

Типичная карта для GPS имеет слои. Появление слоев вызвано необходимостью отображать на карте только то, что в данный момент интересует пользователя. Поясняю. Первый соблазн при создании своей карты — разместить на ней как можно больше информации. Однако не всегда нужно видеть все, что хранит в себе карта. Когда едешь на автомобиле по пригороду, информация о грибных и рыбных местах будет только отвлекать от важного — расположения дорог и населенных пунктов, а вот когда выходишь из машины и направляешься в лес, интерес представляют совершенно другие объекты — тропы, болота и поляны, бесполезные автомобилисту.

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

Слои отделяются друг от друга по масштабу. То есть при увеличении или уменьшении карты в навигаторе в зависимости от текущего масштаба мы видим тот или иной слой.

Когда карта создается, мы указываем количество слоев, необходимых для нас, и для каждого слоя задаем его масштаб. Всего доступно около 20 уровней увеличения —от масштаба стран и континентов (1200 км) до масштаба отдельных деревьев и домов (30 м). Количество используемых слоев зависит от назначения карты, и, как правило, лежит в промежутке от 2 до 7.

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

Например, на нижнем (самом подробном) слое грунтовая дорога обозначена жирной линией, чтобы отличить ее от «тонкой» тропы. На менее детальном слое грунтовая дорога имеет меньшую значимость, чем шоссе, и ее «жирный» вид становится неуместен. В этом случае указывается, что жирность линии при переходе на слой крупного масштаба нужно уменьшить (просто грунтовку обозначаем другим типом полилинии — например, тропой). А чтобы карта на этом слое выглядела чистой, тропы вообще исключаем, как малозначимые элементы. После загрузки такой карты в навигатор при большом увеличении мы видим, как по тропе мы приходим к грунтовой дороге, где стоит наш автомобиль. Сев в машину, увеличиваем скорость своего движения, а также масштаб карты. При этом тропы исчезают и дороги приобретают другой вид.

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

Создавая электронную карту, нужно стремиться к такой же лаконичности и чистоте. Не следует размещать на карте те объекты, которые вам неинтересны или не относятся к специфике карты. Важно понять, что карта не должна быть максимально подробной — она должна максимально соответствовать своему предназначению. Система слоев служит для сохранения лаконичности и информационной чистоты карты.

Что дальше?

Статья подходит к концу. В чем же был ее смысл, если после прочтения нельзя сразу пойти и творить?

Задача этого текста — дать беглый взгляд на проблематику, чтобы читатель смог для себя решить, интересует его эта тема или нет. Вкратце я описал способ создания электронных карт и упомянул основные его этапы (определение задач карты, поиск исходной информации, ее обработка, проектирование карты с выделением нужных слоев, собственно нанесение объектов). На этом жизненный цикл карты не заканчивается — далее следуют не упомянутые в статье отладка карты, экспортирование ее в нужный формат, тестирование на местности...

Как сделать свою первую карту — материал следующей статьи. Тому же, кому не терпится приняться за дело, можно порекомендовать воспользоваться поиском информации в интернете. Для старта хороши такие ресурсы, как замечательный сайт «В дорогу!» (v-dorogu.narod.ru), проект «Нарисуй карту» с возможностью пройти курс обучения созданию карт (freemaps.gisrussa.ru), форум на сайте программы Navitel Navigator, где обсуждаются как вопросы эксплуатации Навитела, так и вопросы создания карт (forum.navitel.ru). Думаю, для начала этого достаточно. Эти ресурсы содержат большое количество информации и ссылок на сайты смежной тематики. Вы также можете посетить мой сайт (schleicher.ru), на котором размещены кое-какие материалы по данной теме.

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






Рекомендуемый контент




Copyright © 2010-2019 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.