Редактор карт векторных


GpsmapEdit редактор векторных карт - Лекция

"Создание и редактирование векторных карт 

для навигационно-информационной системы ГИС Русса"

 

 

Лекция №5

 

 

  1. Выбор навигационной программы.

  2. GPSMapEdit - редактор векторных карт.

  3. Обзор программы ГИСРусса.

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

 

Выбор навигационной программы.

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

В качестве исходных данных примем, что у нас уже есть КПК с модулем приёма данных системы GPS. Само по себе это не даст нам никакого преимущества. Эта связка начнёт работать только после того, как мы установим программное обеспечение, имеющее возможности выполнять те функции, которые мы хотим получить. Для этого нужно знать на что мы можем рассчитывать. Давайте посмотрим на что нужно обращать внимание, выбирая программу для навигации:

1. Стоимость программы и её соответствие операционной системе. Здесь всем понятно, что программа должна соответствовать операционной системе имеющегося КПК. И быть удовлетворительной по цене. Выбор операционных систем не велик и самыми популярными являются Pocket PC с ОС Windows CE и Palm с ОС Palm CE. 

По ценам вариантов больше. Стоимость навигационных программ варьируется от 0$ до 200$. Так же немаловажным является отношение разработчика к модификации программы. Чем чаще выпускаются новые версии программы, тем большей стабильностью и функциями она обладает.

2. Возможность получать данные от различных приёмников сигналов GPS. Будет обидно, если Ваш приёмник не будет виден из за каких либо ограничений. Например иногда такое происходит по причине ошибок, связанных с эмуляцией COM портов. Сейчас, для коммерческих программ, подобная проблема большая редкость.

3. Возможность загружать карты местности. По сути, без карт подобные программы попросту не нужны. Все современные программы поддерживают загрузку электронных карт. Однако не всё так просто. Во первых карты бывают разные. Есть растровые карты местности и есть векторные.

Растровые карты получают отсканировав и, соответствующим образом, привязав обычные бумажные карты. Плюсом здесь является то, что растровых карт достаточно много. Купив обычную карту местности для интересующего района, всегда можно переработать её для загрузки этих данных в память КПК. Минусом является то, что растровые карты, как и любой растр, плохо масштабируются и сами файлы обладают огромными размерами. Первый недостаток может привести к тому, что приблизив какую либо область карты, нельзя будет ничего по хорошему разглядеть. Например возьмём широко распространённые карты с масштабом 1см=5км. На бумажной основе они выглядят достаточно качественно. Но давайте посчитаем погрешность, заложенную в них. Если в 1см помещается 5км, то значит в 1мм поместится 500м. Ширина линии для обозначения автомобильной трассы на такой карте составляет 0,7-1мм. То есть ширина трассы составит около 500м! Сделав в своём навигаторе масштаб равный 1см=500м, Вы рискуете увидеть нечто невообразимое. Как в таком случае ориентироваться, непонятно.  Напомню, что точность определения координат у приёмников GPS составляет 5-15м. Второй недостаток - большие размеры файла карты, потребует затратить деньги на дополнительную память. Немаловажным аргументом против растровых карт является то, что их очень трудно редактировать. Попробуйте перерисовать на растровом изображении очертание города, излучину реки или новую трассу. Знаки сервиса и названия рек, населённых пунктов и т.п. могут также привести к невозможности ориентации. Например я видел карты, где наименование крупных городов полностью лишало ориентации в окрестностях этого города из за того, что выведенное крупными буквами название, просто перекрывало всё остальное в нужном районе. 

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

4. Возможность выбора языка интерфейса. Лучше, если программа изначально рассчитана на Российского потребителя. Поддержка русского языка гарантирует, что Вы не столкнётесь с необходимостью транслитерации наименований. Например, гораздо комфортнее читать "Каширный мыс", чем какой ни будь "Kashyrnyj mys". Однако нельзя сбрасывать со счетов и возможность изменять язык интерфейса программы - английский, украинский, китайский и т.д. Поэтому желательно поддержка программой формата Unicode, который может отображать любые национальные символы.

5. Количество вычисляемых показателей. Здесь всё определяется фантазией разработчика программы. Можно придумать великое множество параметров, которые можно вычислить исходя из полученных о Вашем текущем местонахождении данных. Приведу лишь некоторые из них - текущая, средняя, максимальная скорость, время прибытия в заданную точку, время захода Солнца, расстояние до точки, текущая высота, ускорение и многое другое. И хотя многие из них используются очень редко, но возможно когда-нибудь их отсутствие вполне может обернуться неудобством в Вашем путешествии. 

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

7. Прокладка маршрутов. Очень важной является возможность программы составлять маршрут и отслеживать его выполнение. Здесь следует разделить два способа составления маршрута. Разберёмся с первым из них. 

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

Автоматическая прокладка маршрутов или "роутинг". Образовано от английского Routing, что означает маршрутизация. Но от предыдущего способа эта функция отличается полной автоматизацией. Выглядит это следующим образом - нам всё ещё надо попасть из точки А в точку Б, но дороги мы совсем не знаем. Вот тут и пригодится роутинг. Он позволяет автоматически проложить маршрут движения, просто указав на конечную точку пути. Причём маршрут автоматически прокладывается с учётом особенности реальной обстановки. Если показан перекрёсток, но на нём висит "кирпич" или дорога односторонняя, то будет рассмотрен ближайший объезд в соответствии с правилами дорожного движения и максимального сокращения пути. Эта функция пока ещё не имеет широкого хождения и встречается достаточно редко. Для её реализации необходимы очень точные карты, содержащие актуальную информацию о дорогах. Как правило, такие карты продаются за отдельную плату. Но со временем эта функция станет достаточно популярной. Возьмём хотя бы Западную Европу, там роутинг уже стал обыденностью.

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

В заключение приведу перечень основных навигационных программ с указанием их стоимости. 

OziExplorer CE (30$+85$ за программу привязки карт),  PocketGPS (120$), PalmGIS (70$), Ариадна (120$), Na Sa (150$), GISRussa (49$).

Нельзя не сказать, что за рубежом существует большое количество подобных программ. Например PocketStreets или TomTom-navigator. Однако их применение в России невозможно, в виду полного отсутствия карт.

 

GPSMapEdit - редактор векторных карт.

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

Вначале, как всегда, немного истории. Сначала на прилавках магазинов появились одноканальные, а в последствии и 12-канальные навигаторы, позволяющие с точностью до 10-15м определять координаты и. исходя из этого, вычислять остальные данные о движении. Они умели многое и тогда казалось, что прогресс в развитии будет развиваться в сторону увеличения количества путевых точек, объёма треклога, увеличения вычисляемых параметров и т.п. Так оно и было. Однако в скором времени технологический прогресс позволил вместить в столь малое устройство, управление, отвечающее за отображение, помимо обычной символьной информации, ещё и электронных карт. Карты с данными выводились прямо на дисплей навигатора. Это был существенный прорыв в развитии GPS навигации. Сразу за этим встал вопрос - где взять карты. Если для США и многих стран Европы создание подробных карт не заняло много времени, то для России их выпуск вообще не планировался. Да и в настоящее время производители навигаторов, а именно им принадлежат права на форматы электронных карт, не ведут активную работу по сбору данных, нужных для создания карт России. Самыми популярными навигаторами в России являются навигаторы производства компании Garmin. Свой формат карт Garmin держит в секрете. 

Это должно было привести к монополизации в создании и распространении электронных карт для навигаторов этого производителя. Почему должно было? Да потому что нашёлся человек, который каким то образом сумел разобраться с составом тех данных, которые хранились в файлах данных карт. Этим человеком был Stanislaw Kozicki. Вскоре появилась программа, позволяющая компилировать исходные данные в формат карт Garmin. Программа-компилятор называется сGPSMapper.

Вы вероятно знаете, что любая компиляция происходит из каких-то исходных данных. Что же это за исходные данные? Дело в том, что создавать описание карты сразу в конечном формате было невозможно в силу определённых причин. Поэтому Станиславу пришлось разработать особый язык описания объектов на карте. Этот формат носит название "Польский формат". В честь страны, где живёт автор. С помощью этого языка можно задавать полное описания для всех необходимых объектов, присутствующих на карте. О нём мы поговорим в следующей лекции.

Однако вручную описывать каждый объект практически не реально. Например возьмём обозначение объекта в виде прямоугольника. Для его описания на карте необходимо следующее:

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

- описать этот объект, дав ему код типа объекта, имя, слой, описание;

- точно знать и ввести координаты всех его четырёх углов.

После этого в командной строке дать команду на компиляцию карты и, если нигде не обнаружится ошибки, получить файл карты с расширением *.img. Но и  это ещё не всё. Что бы посмотреть результат, надо загрузить эту карту в навигатор и только тогда увидеть правильно ли всё было сделано. Если нет, то процесс повторяется. И всё это ради одного прямоугольника. Представьте ситуацию, когда Вам надо нарисовать карту с 1000 объектов. И это далеко не самое большое количество объектов карты.

Вот почему и появилась программа, которая изначально являлась как бы графической оболочкой для компилятора cGPSMapper. Эта программа называется GPSMapEdit. Разработана она россиянином  Константином Галичским. Она является основным инструментом в процессе создания и редактирования электронных векторных карт в "Польском формате" и преобразовании их в другие форматы. В процессе своего развития постоянно увеличивалось количество выполняемых функций. Сейчас программа умеет самостоятельно преобразовывать код "Польского формата" в несколько форматов векторных карт. Помимо перечисленных выше, возможно преобразование в форматы для навигаторов Holux и AlanMap500. Не так давно появилась поддержка ещё одного формата - RUS, который использует навигационная программа ГИСРусса, речь о которой впереди. 

Следует сказать, что альтернативы GPSMapEdit на рынке программ в настоящее время нет. Были отдельные попытки создать что-то подобное, но распространения они не получили.

Стоимость программы составляет 990 рублей для жителей России, что достаточно немного для программы такого уровня, к тому же при отсутствии достойных конкурентов. Раз уж мы заговорили о стоимости, нельзя не упомянуть про политику автора в отношении незарегистрированной программы. Как ни странно, лицензия на программу не предусматривает Trial период. То есть Вы можете пользоваться программой сколь угодно продолжительное время. Причём программа на 90% сохраняет все, заложенные в неё возможности. Ограничения касаются редких команд работы с картой, импорта и сохранения данных в некоторых форматах. Причём сохранение в формат программы ГИСРусса остаётся полностью работоспособным.

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

Полигоны - это замкнутые площадные объекты, используемые для отображения таких типов объектов, как моря, озёра, леса, болота и пр. 

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

Точки - соответственно точечные объекты для отображения маяков, заправок, бродов, глубин и пр.

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

 

Обзор программы ГИСРусса.

Прежде чем начать рассматривать процесс создания карт, хочется рассказать о программе, для которой эти карты будут готовиться. Этой программой является  программа ГИСРусса, которая позиционируется на рынке как "Мобильная навигационно-информационная система для Pocket PC & GPS". 

Почему именно ГИСРусса? - спросите Вы. Попытаюсь объяснить. Программа создаётся с непосредственным участием автора GPSMapEdit. Это означает, что по крайней мере с совместимостью этих двух программ проблем не будет. Кроме того К.Галичский признанный специалист в вопросах геопрограммирования. Первая версия программы появилась 1 июля 2004. Активность развития программы показывает тот факт, что к ноябрю 2004 года выпущено уже 10 обновлений. И все они каждый раз приносили новые возможности для максимально удобной работы с программой. За этот период количество новых, по сравнению с первой версией, функций перевалило за 30. 

Сначала давайте попробуем определиться с соответствием параметров и характеристик программы ГИСРусса с теми, которые были указаны выше. Пойдём прямо по пунктам.

1. Стоимость программы и её соответствие операционной системе.

Как было видно из ссылок на другие программы, стоимость программы является самой низкой по сравнению с другими конкурентами. Программа рассчитана на КПК на основе PocketPC и любую версию ОС Windows CE.

2. Возможность получать данные от различных приёмников сигналов GPS.

С подключением приёмников GPS к КПК и их успешным распознаванием программой у большинства программ теперь вопросов не возникает. Не стала исключением и ГИСРусса.

3. Возможность загружать карты местности.

А вот здесь программа даст фору любой другой. Мало того, что она использует самый компактный, по сравнению с другими, формат для хранения векторных карт, так для неё уже сейчас можно скачать готовые карты всей территории России. Причём эти карты можно свободно редактировать и дополнять с помощью всё того же GPSMapEdit. Готовые карты абсолютно бесплатны и каждый желающий может скачать нужный район посетив эту страничку. Такой возможности в настоящее время нет ни у одного конкурента. Как и программы, позволяющей каждому редактировать эти данные.

4. Поддержка любого языка интерфейса.

Программа, созданная в России, по определению не имеет проблем с русским интерфейсом. Кроме этого можно легко изменять язык интерфейса простой сменой файла языкового модуля. Языковой модуль - это файл с расширением "*.rrl". Имеется поддержка Unicode.

5. Количество вычисляемых показателей.

Помимо ставших привычными показателей, у программы ГИСРусса на данный момент есть такие интересные параметры как:

- Глубина (данные от эхолота, поддерживающего протокол NMEA-0183)

- Температура (данные от эхолота, поддерживающего протокол NMEA-0183)

- Площадь (площадь фигуры ограниченной траекторией движения и отрезком от текущей до исходной точки)

- Аэродинамическое качество (отношение вертикальной скорости к горизонтальной)

- Наклон (наклон траектории)

- Минимальная высота (минимальная высота измеренная с момента сброса значения)

- Пеленг точки (Азимут следующей путевой точки относительно текущего положения).

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

6. Удобство сохранения и работы с маршрутными данными.

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

7. Прокладка маршрута.

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

Кроме всего вышесказанного следует отметить, что изо всех перечисленных навигационных программ, только ГИСРусса и OziExplorer не привязаны к какому либо географическому положению. Остальные рассчитаны только на предлагаемые разработчиком карты с очень ограниченным охватом. Как правило это Москва, Санкт-Петербург и немного других городов и областей. В свою очередь OziExplorer не работает с векторными картами. Как мы уже выяснили, растровые карты - не самый лучший вариант, ввиду большого размера файлов карт. Кроме этого, с применением растровых карт становится невозможным применение автоматической прокладки маршрута - роутинга.

Есть ещё одна причина. Я думаю, что с течением времени всё больше внимания будет уделяться легальности использования того или иного продукта или данных. Это в настоящее время довольно отчётливо проявляется в ситуации с пиратскими компакт дисками с играми и музыкой. Постепенно их становится всё меньше и меньше. В этом плане существенным отличием ГИС Русса является то, что у разработчиков этого продукта есть ВСЕ необходимые документы, разрешения и лицензии. У всех остальных отечественных разработчиков подобных программ их просто нет. Ни у одного! Поэтому стоит случиться любой проверке ответственных органов и данная программа просто исчезнет с рынка. А как же деньги, отданные за неё? Как поддержка и дальнейшее развитие? В общем ситуация напоминает лотерею. Может кому и интересно рисковать, но мне, например, нравится когда я отдал деньги и получил то, на что рассчитывал у продавца, который не исчезнет через день.  

Из всего вышесказанного можно сделать вывод, что навигационная программа ГИСРусса, при самой низкой стоимости, удовлетворяет всем условиям в плане функциональности. Решающим фактором можно считать наличие готовых пятикилометровых карт всей территории России и полноценного инструмента для самостоятельного редактирования существующих и создания собственных карт. В данное время такой набор не предложил ни один разработчик подобного ПО.

На этом основании все дальнейшие описания работы по созданию векторных карт будут ориентированы именно навигационную программу ГИС Русса.

_______________

 

Свои вопросы по пройденному материалу Вы можете задавать на нашем форуме.

 

Перейти к лекции N6.

refdb.ru

Создание и редактирование векторных карт: часть пятая

Создание и редактирование векторных карт

часть 1 часть 2 часть 3 часть 4 часть 5 часть 6 часть 7 часть 8 часть 9 часть 10

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

Выбор навигационной программы.

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

В качестве исходных данных примем, что у нас уже есть КПК с модулем приёма данных системы GPS. Само по себе это не даст нам никакого преимущества. Эта связка начнёт работать только после того, как мы установим программное обеспечение, имеющее возможности выполнять те функции, которые мы хотим получить. Для этого нужно знать на что мы можем рассчитывать. Давайте посмотрим на что нужно обращать внимание, выбирая программу для навигации:

1. Стоимость программы и её соответствие операционной системе. Здесь всем понятно, что программа должна соответствовать операционной системе имеющегося КПК. И быть удовлетворительной по цене. Выбор операционных систем не велик и самыми популярными являются Pocket PC с ОС Windows CE и Palm с ОС Palm CE.

По ценам вариантов больше. Стоимость навигационных программ варьируется от 0$ до 200$. Так же немаловажным является отношение разработчика к модификации программы. Чем чаще выпускаются новые версии программы, тем большей стабильностью и функциями она обладает.

2. Возможность получать данные от различных приёмников сигналов GPS. Будет обидно, если Ваш приёмник не будет виден из за каких либо ограничений. Например иногда такое происходит по причине ошибок, связанных с эмуляцией COM портов. Сейчас, для коммерческих программ, подобная проблема большая редкость.

3. Возможность загружать карты местности. По сути, без карт подобные программы попросту не нужны. Все современные программы поддерживают загрузку электронных карт. Однако не всё так просто. Во первых карты бывают разные. Есть растровые карты местности и есть векторные.

Растровые карты получают отсканировав и, соответствующим образом, привязав обычные бумажные карты. Плюсом здесь является то, что растровых карт достаточно много. Купив обычную карту местности для интересующего района, всегда можно переработать её для загрузки этих данных в память КПК. Минусом является то, что растровые карты, как и любой растр, плохо масштабируются и сами файлы обладают огромными размерами. Первый недостаток может привести к тому, что приблизив какую либо область карты, нельзя будет ничего по хорошему разглядеть. Например возьмём широко распространённые карты с масштабом 1см=5км. На бумажной основе они выглядят достаточно качественно. Но давайте посчитаем погрешность, заложенную в них. Если в 1см помещается 5км, то значит в 1мм поместится 500м. Ширина линии для обозначения автомобильной трассы на такой карте составляет 0,7-1мм. То есть ширина трассы составит около 500м! Сделав в своём навигаторе масштаб равный 1см=500м, Вы рискуете увидеть нечто невообразимое. Как в таком случае ориентироваться, непонятно. Напомню, что точность определения координат у приёмников GPS составляет 5-15м. Второй недостаток - большие размеры файла карты, потребует затратить деньги на дополнительную память. Немаловажным аргументом против растровых карт является то, что их очень трудно редактировать. Попробуйте перерисовать на растровом изображении очертание города, излучину реки или новую трассу. Знаки сервиса и названия рек, населённых пунктов и т.п. могут также привести к невозможности ориентации. Например я видел карты, где наименование крупных городов полностью лишало ориентации в окрестностях этого города из за того, что выведенное крупными буквами название, просто перекрывало всё остальное в нужном районе.

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

4. Возможность выбора языка интерфейса. Лучше, если программа изначально рассчитана на Российского потребителя. Поддержка русского языка гарантирует, что Вы не столкнётесь с необходимостью транслитерации наименований. Например, гораздо комфортнее читать "Каширный мыс", чем какой ни будь "Kashyrnyj mys". Однако нельзя сбрасывать со счетов и возможность изменять язык интерфейса программы - английский, украинский, китайский и т.д. Поэтому желательно поддержка программой формата Unicode, который может отображать любые национальные символы.

5. Количество вычисляемых показателей. Здесь всё определяется фантазией разработчика программы. Можно придумать великое множество параметров, которые можно вычислить исходя из полученных о Вашем текущем местонахождении данных. Приведу лишь некоторые из них - текущая, средняя, максимальная скорость, время прибытия в заданную точку, время захода Солнца, расстояние до точки, текущая высота, ускорение и многое другое. И хотя многие из них используются очень редко, но возможно когда-нибудь их отсутствие вполне может обернуться неудобством в Вашем путешествии.

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

7. Прокладка маршрутов. Очень важной является возможность программы составлять маршрут и отслеживать его выполнение. Здесь следует разделить два способа составления маршрута. Разберёмся с первым из них.

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

Автоматическая прокладка маршрутов или "роутинг". Образовано от английского Routing, что означает маршрутизация. Но от предыдущего способа эта функция отличается полной автоматизацией. Выглядит это следующим образом - нам всё ещё надо попасть из точки А в точку Б, но дороги мы совсем не знаем. Вот тут и пригодится роутинг. Он позволяет автоматически проложить маршрут движения, просто указав на конечную точку пути. Причём маршрут автоматически прокладывается с учётом особенности реальной обстановки. Если показан перекрёсток, но на нём висит "кирпич" или дорога односторонняя, то будет рассмотрен ближайший объезд в соответствии с правилами дорожного движения и максимального сокращения пути. Эта функция пока ещё не имеет широкого хождения и встречается достаточно редко. Для её реализации необходимы очень точные карты, содержащие актуальную информацию о дорогах. Как правило, такие карты продаются за отдельную плату. Но со временем эта функция станет достаточно популярной. Возьмём хотя бы Западную Европу, там роутинг уже стал обыденностью.

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

В заключение приведу перечень основных навигационных программ с указанием их стоимости.

OziExplorer CE (30$+85$ за программу привязки карт), PocketGPS (120$), PalmGIS (70$), Ариадна (120$), Na Sa (150$), GISRussa (49$).

Нельзя не сказать, что за рубежом существует большое количество подобных программ. Например PocketStreets или TomTom-navigator. Однако их применение в России невозможно, в виду полного отсутствия карт.

GPSMapEdit - редактор векторных карт.

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

Вначале, как всегда, немного истории. Сначала на прилавках магазинов появились одноканальные, а в последствии и 12-канальные навигаторы, позволяющие с точностью до 10-15м определять координаты и. исходя из этого, вычислять остальные данные о движении. Они умели многое и тогда казалось, что прогресс в развитии будет развиваться в сторону увеличения количества путевых точек, объёма треклога, увеличения вычисляемых параметров и т.п. Так оно и было. Однако в скором времени технологический прогресс позволил вместить в столь малое устройство, управление, отвечающее за отображение, помимо обычной символьной информации, ещё и электронных карт. Карты с данными выводились прямо на дисплей навигатора. Это был существенный прорыв в развитии GPS навигации. Сразу за этим встал вопрос - где взять карты. Если для США и многих стран Европы создание подробных карт не заняло много времени, то для России их выпуск вообще не планировался. Да и в настоящее время производители навигаторов, а именно им принадлежат права на форматы электронных карт, не ведут активную работу по сбору данных, нужных для создания карт России. Самыми популярными навигаторами в России являются навигаторы производства компании Garmin. Свой формат карт Garmin держит в секрете.

Это должно было привести к монополизации в создании и распространении электронных карт для навигаторов этого производителя. Почему должно было? Да потому что нашёлся человек, который каким то образом сумел разобраться с составом тех данных, которые хранились в файлах данных карт. Этим человеком был Stanislaw Kozicki. Вскоре появилась программа, позволяющая компилировать исходные данные в формат карт Garmin. Программа-компилятор называется сGPSMapper.

Вы вероятно знаете, что любая компиляция происходит из каких-то исходных данных. Что же это за исходные данные? Дело в том, что создавать описание карты сразу в конечном формате было невозможно в силу определённых причин. Поэтому Станиславу пришлось разработать особый язык описания объектов на карте. Этот формат носит название "Польский формат". В честь страны, где живёт автор. С помощью этого языка можно задавать полное описания для всех необходимых объектов, присутствующих на карте. О нём мы поговорим в следующей лекции.

Однако вручную описывать каждый объект практически не реально. Например возьмём обозначение объекта в виде прямоугольника. Для его описания на карте необходимо следующее:

После этого в командной строке дать команду на компиляцию карты и, если нигде не обнаружится ошибки, получить файл карты с расширением *.img. Но и это ещё не всё. Что бы посмотреть результат, надо загрузить эту карту в навигатор и только тогда увидеть правильно ли всё было сделано. Если нет, то процесс повторяется. И всё это ради одного прямоугольника. Представьте ситуацию, когда Вам надо нарисовать карту с 1000 объектов. И это далеко не самое большое количество объектов карты.

Вот почему и появилась программа, которая изначально являлась как бы графической оболочкой для компилятора cGPSMapper. Эта программа называется GPSMapEdit. Разработана она россиянином Константином Галичским. Она является основным инструментом в процессе создания и редактирования электронных векторных карт в "Польском формате" и преобразовании их в другие форматы. В процессе своего развития постоянно увеличивалось количество выполняемых функций. Сейчас программа умеет самостоятельно преобразовывать код "Польского формата" в несколько форматов векторных карт. Помимо перечисленных выше, возможно преобразование в форматы для навигаторов Holux и AlanMap500. Не так давно появилась поддержка ещё одного формата - RUS, который использует навигационная программа ГИСРусса, речь о которой впереди.

Следует сказать, что альтернативы GPSMapEdit на рынке программ в настоящее время нет. Были отдельные попытки создать что-то подобное, но распространения они не получили.

Стоимость программы составляет 990 рублей для жителей России, что достаточно немного для программы такого уровня, к тому же при отсутствии достойных конкурентов. Раз уж мы заговорили о стоимости, нельзя не упомянуть про политику автора в отношении незарегистрированной программы. Как ни странно, лицензия на программу не предусматривает Trial период. То есть Вы можете пользоваться программой сколь угодно продолжительное время. Причём программа на 90% сохраняет все, заложенные в неё возможности. Ограничения касаются редких команд работы с картой, импорта и сохранения данных в некоторых форматах. Причём сохранение в формат программы ГИСРусса остаётся полностью работоспособным.

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

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

Обзор программы Руса.

Прежде чем начать рассматривать процесс создания карт, хочется рассказать о программе, для которой эти карты будут готовиться. Этой программой является программа ГИСРусса, которая позиционируется на рынке как "Мобильная навигационно-информационная система для Pocket PC & GPS".

Почему именно ГИСРусса? - спросите Вы. Попытаюсь объяснить. Программа создаётся с непосредственным участием автора GPSMapEdit. Это означает, что по крайней мере с совместимостью этих двух программ проблем не будет. Кроме того К.Галичский признанный специалист в вопросах геопрограммирования. Первая версия программы появилась 1 июля 2004. Активность развития программы показывает тот факт, что к ноябрю 2004 года выпущено уже 10 обновлений. И все они каждый раз приносили новые возможности для максимально удобной работы с программой. За этот период количество новых, по сравнению с первой версией, функций перевалило за 30.

Сначала давайте попробуем определиться с соответствием параметров и характеристик программы ГИСРусса с теми, которые были указаны выше. Пойдём прямо по пунктам.

1. Стоимость программы и её соответствие операционной системе.

Как было видно из ссылок на другие программы, стоимость программы является самой низкой по сравнению с другими конкурентами. Программа рассчитана на КПК на основе PocketPC и любую версию ОС Windows CE.

2. Возможность получать данные от различных приёмников сигналов GPS.

С подключением приёмников GPS к КПК и их успешным распознаванием программой у большинства программ теперь вопросов не возникает. Не стала исключением и ГИСРусса.

3. Возможность загружать карты местности.

А вот здесь программа даст фору любой другой. Мало того, что она использует самый компактный, по сравнению с другими, формат для хранения векторных карт, так для неё уже сейчас можно скачать готовые карты всей территории России. Причём эти карты можно свободно редактировать и дополнять с помощью всё того же GPSMapEdit. Готовые карты абсолютно бесплатны и каждый желающий может скачать нужный район посетив эту страничку. Такой возможности в настоящее время нет ни у одного конкурента. Как и программы, позволяющей каждому редактировать эти данные.

4. Поддержка любого языка интерфейса.

Программа, созданная в России, по определению не имеет проблем с русским интерфейсом. Кроме этого можно легко изменять язык интерфейса простой сменой файла языкового модуля. Языковой модуль - это файл с расширением "*.rrl". Имеется поддержка Unicode.

5. Количество вычисляемых показателей.

Помимо ставших привычными показателей, у программы Руса на данный момент есть такие интересные параметры как:

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

6. Удобство сохранения и работы с маршрутными данными.

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

7. Прокладка маршрута.

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

Кроме всего вышесказанного следует отметить, что изо всех перечисленных навигационных программ, только Руса и OziExplorer не привязаны к какому либо географическому положению. Остальные рассчитаны только на предлагаемые разработчиком карты с очень ограниченным охватом. Как правило это Москва, Санкт-Петербург и немного других городов и областей. В свою очередь OziExplorer не работает с векторными картами. Как мы уже выяснили, растровые карты - не самый лучший вариант, ввиду большого размера файлов карт. Кроме этого, с применением растровых карт становится невозможным применение автоматической прокладки маршрута - роутинга.

Есть ещё одна причина. Я думаю, что с течением времени всё больше внимания будет уделяться легальности использования того или иного продукта или данных. Это в настоящее время довольно отчётливо проявляется в ситуации с пиратскими компакт дисками с играми и музыкой. Постепенно их становится всё меньше и меньше. В этом плане существенным отличием Руса является то, что у разработчиков этого продукта есть ВСЕ необходимые документы, разрешения и лицензии. У всех остальных отечественных разработчиков подобных программ их просто нет. Ни у одного! Поэтому стоит случиться любой проверке ответственных органов и данная программа просто исчезнет с рынка. А как же деньги, отданные за неё? Как поддержка и дальнейшее развитие? В общем ситуация напоминает лотерею. Может кому и интересно рисковать, но мне, например, нравится когда я отдал деньги и получил то, на что рассчитывал у продавца, который не исчезнет через день.

Из всего вышесказанного можно сделать вывод, что навигационная программа ГИСРусса, при самой низкой стоимости, удовлетворяет всем условиям в плане функциональности. Решающим фактором можно считать наличие готовых пятикилометровых карт всей территории России и полноценного инструмента для самостоятельного редактирования существующих и создания собственных карт. В данное время такой набор не предложил ни один разработчик подобного ПО.

На этом основании все дальнейшие описания работы по созданию векторных карт будут ориентированы именно навигационную программу ГИСРусса.

yug-gps.narod.ru

Создание и редактирование векторных слоев средствами QGIS

Описание инструментария QGIS для работы с векторными данными

QGIS – динамично развивающаяся свободная пользовательская ГИС, представляющая довольно развитый инструментарий для работы с любой пространственной информацией. Мы уже разбирали вопросы привязки растровых данных с помощью QGIS. В этой статье мы остановимся на работе с векторными объектами. Данная статья иллюстрирована примерами англоязычного интерфейса, однако вы легко можете использовать и русифицированный.

[править] Создание векторного слоя

Для создания векторного слоя выберем New Vector Layer в меню Layer или воспользуемся кнопкой , по умолчанию расположенной на панели инструментов. В открывшемся диалоговом окне зададим необходимые параметры.

Создание нового векторного слоя

Во-первых, это формат файла, в котором будут храниться данные нового слоя. В текущей версии QGIS (0.11.0 – Metis) таким форматом, причем единственным, является ESRI Shapefile. Во-вторых, тип создаваемого слоя, здесь всё стандартно – точечный (Point), линейный (Line) или полигональный (Polygon). Также необходимо определить минимум одно поле таблицы атрибутов. В поле Name задается его имя, а в поле Type выбирается тип – действительное число (Real), целое число (Integer) или строка (String). Для добавления и удаления полей служат кнопки и . После того, как все необходимые параметры были заданы, нажимаем кнопку OK, задаем имя папки, в которой будут храниться наши данные, и переходим к редактированию только что созданного слоя.

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

[править] Настройка параметров редактирования векторного слоя

Для настройки параметров редактирования выберем Options в меню Settings и перейдем на вкладку Digitizing. В открывшемся диалоговом окне видим три группы параметров: Rubberband, Snapping и Vertex markers.

Настройка параметров редактирования

Параметры Line width и Line color группы Rubberband определяют толщину и цвет линии, используемой при рисовании линейных и полигональных объектов.

Параметр Marker style группы Vertex markers определяет стиль маркера вершины - Semi transparent circle (полупрозрачный круг) или Cross (перекрестие).

Группа параметров Snapping отвечает за настройку прилипания – автоматического совмещения узлов объектов при редактировании. Default snap mode – режим прилипания по умолчанию. Можно задать один из трех режимов: to vertex (к вершине), to segment (к сегменту), to vertex and segment (к вершине и сегменту). Default snapping tolerance in layer units – порог прилипания. Режим и порог прилипания работают следующим образом: при подведении курсора мыши на определенное расстояние (порог прилипания) от сегмента или вершины (в зависимости от режима прилипания), рисуемая линия автоматически продолжается до касания с ближайшим сегментом или вершиной. На рисунке представлен пример использования различных режимов прилипания.

Режимы прилипания (большой кружок – вершины существующей линии, синяя, маленький – последняя вершина создаваемой линии, красная): а) к сегменту, б) к вершине

Search radius for vertex edits in layer units – радиус поиска ближайших вершин, используется при перемещении, удалении или добавлении вершин. Если в круг с центром в месте щелчка мышью и радиусом Search radius for vertex edits in layer units попадает хотя бы одна вершина, то выбирается ближайшая из них. При нулевом значении параметра Search radius for vertex edits in layer units или в случае если в указанный круг не попадает ни одной вершины появляется сообщение о том, что не задан порог прилипания, хотя порог прилипания здесь непричем. Порог прилипания и радиус поиска ближайших вершин задаются в единицах измерения слоя.

Сообщение об отсутствии порога прилипания

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

[править] Топологическое редактирование и прилипание нескольких слоев

Кроме только что рассмотренных настроек, в QGIS имеются дополнительные возможности, позволяющие, помимо всего прочего, настроить параметры прилипания в отдельности для каждого слоя. Рассмотрим дополнительные настройки редактирования и параметры прилипания.

В меню Settings выбираем Project Properties и переходим на вкладку General. Нас будет интересовать группа параметров Digitizing.

Настройка параметров проекта

Enable topological editing – включение режима топологического редактирования. Если топологическое редактирование включено, то при перемещении вершины, принадлежащей одновременно нескольким объектам (полигонам или линиям), их геометрия изменится в соответствии с новым положением перемещенной вершины. Если же топологическое редактирование отключено, то изменения коснутся только одного объекта.

Включенный (а) и выключенный (б) режим топологического редактирования

Avoid intersections of new polygons – предотвращение пересечения новых полигонов. Если активировать этот пункт, то при создании нового полигона в случае наложения его на уже существующий, часть нового полигона, попадающая в наложение, будет исключена.

Пример предотвращения пересечения полигонов

Нажимаем кнопку Snapping options и переходим к настройке прилипания для отдельных слоев.

Настройка прилипания для отдельных слоев

В столбце Layer расположены слои текущего проекта. Если слой отмечен крестиком, то настройки прилипания для него включены. В столбце Mode настраивается режим прилипания для каждого слоя, а в столбце Tolerance – порог расстояния прилипания.

ВАЖНО!!! Если нажать OK в окне Snapping options, а затем Apply в окне Project Properties, то настройки Default snap mode и Default snapping tolerance in layer units, которые мы указывали до этого, утрачивают свою силу для текущего проекта навсегда. И поэтому каждый раз, добавляя новый слой, вам необходимо через Snapping options указывать для него настройки прилипания.

На этом процесс настройки параметров редактирования векторного слоя можно считать оконченным.

[править] Работа с точечными слоями

Прежде чем приступать к редактированию любого векторного слоя убедитесь в том, что у вас включена панель инструментов Digitizing. Если она отсутствует, то ее следует включить: в меню View выберете Toolbar Visibility и активируйте панель Digitizing. Добавьте в проект имеющийся или создайте новый точеный слой, следуя вышеприведенным инструкциям. После этого выберите его, щелкнув на нем в легенде, иконка Toggle editing станет активной: . Для того чтобы начать редактирование, щелкните на ней (в QGIS по умолчанию слой открыт только для чтения). Панель инструментов Digitizing для точечного слоя будет выглядеть следующим образом:

Панель инструментов Digitizing точечного слоя

Щелкните на иконке Capture Point: для того чтобы добавить новый точечный объект. После этого левой кнопкой мыши щелкните в то место, где бы вы хотели его расположить. В появившемся окне укажите значения атрибутов. На этом процедура добавления нового точечного объекта закончена.

Окно ввода значений атрибутов

Попробуйте добавить ещё один точечный объект. Если после щелчка на новом месте объект не появляется, убедитесь в том, что у вас не включен режим прилипания к вершине. В этом случае новый точечный объект может прилипнуть к уже существующему и слиться с ним. В таком случае следует просто отключить прилипание.

Инструмент Move Feature: позволяет перемещать точечные объекты. Этот инструмент работает следующим образом: нажимаем на иконку , после чего щелкаем рядом с объектом, который мы хотим переместить. В соответствии со значением Search radius for vertex edits in layer units выбирается ближайший точечный объект, при этом он становится выделенным. Не отпуская левой клавиши мыши, переместим наш объект на новое место и отпустим клавишу – объект будет перемещен.

С точечным объектом можно производить простейшие операции, такие как удаление: , вырезание: , копирование: и вставку: , причем вставлять вырезанный или скопированный объект можно как на текущий слой, так и на любой другой слой такого же типа. Но прежде чем осуществлять эти операции, нужный объект следует выделить. Для этого существует инструмент Select Features: панели инструментов Attributes.

Кроме того, в QGIS есть возможность редактирования атрибутов. Щелкните на иконке Open Table: панели инструментов Attributes. Перед вами откроется диалоговое окно.

Окно редактирования атрибутов

Для начала редактирования нажмите кнопку Start editing, отредактируйте атрибуты и нажмите кнопку Stop editing, после чего подтвердите или откажитесь от сохранения внесенных изменений. Как уже отмечалось выше, пока операции по удалению имеющихся и добавлению новых полей в таблицу атрибутов shape-файла в QGIS реализованы только с помощью специального расширения.

[править] Работа с линейными слоями

Добавьте в проект имеющийся или создайте новый линейный слой, следуя вышеприведенным инструкциям. После этого выберите его, щелкнув на нем в легенде. Для того чтобы начать редактирование, щелкните на иконке Toggle editing: , панель инструментов будет выглядеть следующим образом:

Панель инструментов Digitizing линейного слоя

Чтобы добавить линейный объект, щелкните на иконке Capture Line: . После чего последовательно указывая вершины, используя левую клавишу мыши, нарисуйте линейный объект. Точка, завершающая ввод линейного объекта, указывается щелчком правой клавиши мыши. В появившемся окне укажите значения атрибутов. На этом процедура добавления нового линейного объекта закончена.

Работа инструментов удаления, вырезки, копирования и вставки линейных объектов аналогична работе этих же инструментов в случае точечных объектов.

Инструмент Move Feature:позволяет перемещать кроме точечных также и линейные объекты. Этот инструмент работает следующим образом: нажимаем на иконку, после чего щелкаем рядом с объектом, который мы хотим переместить. В соответствии со значением Search radius for vertex edits in layer units выбирается ближайшая вершина, а линия, которой принадлежит эта вершина, становится выделенной. Не отпуская левой клавиши мыши, переместим выделенную линию на новое место и отпустим клавишу – объект будет перемещен.

Инструмент Move Vertex: позволяет перемещать вершины линейного объекта. Этот инструмент работает следующим образом: нажимаем на иконку, после чего щелкаем рядом с вершиной, которую хотим переместить. В соответствии со значением Search radius for vertex edits in layer units выбирается ближайшая вершина. Не отпуская левой клавиши мыши, переместим выбранную вершину на нужное место и отпустим клавишу. Перемещение вершины будет происходить в соответствии с настройками прилипания для данного слоя (не допускайте прилипания вершины к другой вершине одного и того же объекта).

Инструмент Add Vertex: позволяет добавлять новые вершины к линейному объекту. Этот инструмент работает следующим образом: нажимаем на иконку , после чего щелкаем в то место, куда мы хотим добавить новую вершину. В соответствии с параметром Search radius for vertex edits in layer units выбирается отрезок ломаной (подсвечивается), на который будет добавлена новая вершина. Не отпуская левой клавиши мыши, переместим добавленную (пока виртуально) вершину на нужное место и отпустим клавишу либо отпустим её сразу после нажатия, если нужным местом является место щелчка. Если расстояние от места, на котором была отпущена левая клавиша мыши, до ближайшего сегмента или вершины (в зависимости от режима прилипания) меньше порога прилипания, то новая вершина добавится либо к сегменту, либо к вершине (подобных ситуаций прилипания к вершинам следует избегать), в противном случае новая вершина добавится непосредственно в то место, где была отпущена левая клавиша мыши.

Инструмент Delete Vertex: позволяет удалять вершины линейных объектов. Этот инструмент работаем следующим образом: нажимаем на иконку, после чего щелкаем рядом с вершиной, которую мы хотим удалить. В соответствии со значением Search radius for vertex edits in layer units выбирается ближайшая вершина и отмечается перекрестием. При отпускании левой клавиши мыши отмеченная вершина удалится.

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

Точно также как и в случае с точечным слоем, в линейном слое можно осуществлять редактирование атрибутов, используя инструмент Open Table: .

[править] Работа с полигональными слоями

Добавьте в проект имеющийся или создайте новый полигональный слой, следуя вышеприведенным инструкциям. После этого выберите его, щелкнув на нем в легенде. Для того чтобы начать редактирование, щелкните на иконке Toggle editing: , панель инструментов будет выглядеть следующим образом:

Панель инструментов Digitizing полигонального слоя

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

Чтобы добавить полигон, щелкните на иконке Capture Polygon: . После чего последовательно указывая вершины, используя левую клавишу мыши, нарисуйте полигональный объект. Точка, завершающая ввод полигона, указывается щелчком правой клавиши мыши. В появившемся окне укажите значения атрибутов. На этом процедура добавления нового полигонального объекта закончена.

Рассмотрим новые инструменты, которые были недоступны при редактировании линейного слоя. Для их активации в QGIS 2.0 и более поздних версиях нужно активировать панель расширенного редактирования: View/Toolbars/Adwansed digitazing.

Инструмент Add Ring: позволяет создавать полигоны в виде кольца. Для этого сначала нарисуйте полигон, затем нажмите на иконку и нарисуйте полигон внутри уже имеющегося. Область последнего полигона будет исключена из имеющегося, и в результате мы получим полигон в форме кольца.

Полигон в форме кольца

Инструмент Add Island: позволяет добавлять к полигонам в форме колец острова. Для того, чтобы добавить остров, выделите полигон в форме кольца, используя инструмент Select Features: , затем нажмите на иконку и нарисуйте внутри кольца острова.

Полигон в форме кольца с островом

Точно также как и в случае с точечным и линейным слоем, в полигональном слое можно осуществлять редактирование атрибутов, используя инструмент Open Table: .

[править] Ссылки по теме

gis-lab.info

Создание и редактирование векторных карт: часть восьмая

Создание и редактирование векторных карт

часть 1 часть 2 часть 3 часть 4 часть 5 часть 6 часть 7 часть 8 часть 9 часть 10

Эта лекция полностью посвящена практической работе. Это то, к чему мы столь продолжительное время все готовились. Работа по составлению карт в программе GPSMapEdit требует творческого подхода. В этой части будут описаны основные принципы и способы работы с объектами, даны рекомендации по оптимальной организации всего процесса. Но всех нюансов предусмотреть невозможно. Поэтому, если у Вас когда-нибудь в процессе практической работы появятся вопросы, то Вы всегда можете обратиться к ведущему и получить ответ. А пока давайте начнём.

Информационное поле программы GPSMapEdit.

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

Первой идёт информация о готовности программы к дальнейшей работе. Здесь можно наблюдать два варианта сообщения - Ready и Ready*. Первое обозначает, что все данные загружены успешно и никаких ошибок при их загрузке не возникло. Второе свидетельствует о том, что в процессе загрузки данных произошла какая-то ошибка. Понятие ошибки трактуется достаточно широко. Чаще всего даже с наличием ошибок при загрузке данных ничего фатального не происходит и с картой можно работать дальше. Но посмотреть причину ошибки надо обязательно. Для этого следует открыть журнал ошибок - File/Error log. Там Вы и найдёте необходимую информацию о причине, вызвавшей сообщение об ошибке.

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

Следующее поле содержит информацию о текущем масштабе карты. Как уже было отмечено ранее, диапазон масштабов в программе достаточно велик. При работе с объектами постоянно требуется изменять масштаб. Поэтому для того, чтобы быть всегда в курсе текущего масштаба, не забывайте поглядывать на значение этого поля. Для примера приведу случай из своей практики. У меня была привязанная растровая двухкилометровка нужной мне местности. Необходимо было создать по ней векторную карту с одним слоем. Достаточный для поставленной задачи масштаб векторной карты составлял 1:200000 (2км). Как всегда, я начал с крупных объектов. По мере перехода к более мелким пришлось увеличивать масштаб. Через некоторое время я поймал себя на мысли, что старательно и подробно обвожу озеро, которого я не знаю. И это далеко не первое такое озеро. Взглянув на поле текущего масштаба, я с удивлением обнаружил, что масштаб составляет всего 200м и я обвожу какую-то лужу на болоте. После генерализации оказалось, что большинство из этих "озёр" попросту исчезли, а оставшиеся сохранились в виде синих треугольничков. Можно сказать, что больше часа работы пропали даром. Теперь, в процессе работы, я периодически посматриваю на текущий масштаб.

Следующее поле показывает информацию о слое, на котором Вы сейчас находитесь. Здесь вариантов довольно много. Но их стоит запомнить. Последовательно приведу все варианты сообщений:

No Levels - слоёв нет. В этом случае необходимо сформировать хотя бы один слой.

=LevelN - текущий масштаб находится в границах действия слоя N.

>LevelN - текущий масштаб мельче, чем предусмотрено для наименее детального слоя.

<LevelN - текущий масштаб больше, чем предусмотрено для наиболее детального слоя.

*LevelN - включен режим визуализации конкретного слоя.

Режим принудительного отображения конкретного слоя при любом масштабе, можно установить в меню "View/Levels". Здесь можно выбрать либо автоматический режим отображения слоёв, где программа сама их переключает, в соответствии с текущим масштабом и настройками слоёв, либо указать какой именно слой будет отображаться при любом масштабе.

Последнее поле показывает текущие координаты курсора. Напомню, что программа GPSMapEdit работает только с датумом WGS84. Настройка вариантов отображения координат происходит в меню "Tools/Options.../Units".

Таким образом информационное поле GPSMapEdit на самом деле содержит полезную и разнообразную информацию, которую не удастся посмотреть где либо ещё.

Порядок распределения объектов.

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

1. Самый верхний уровень всегда занимают точки,

2. После точек отображаются линии,

3. В самом низу находятся полигоны.

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

Здесь определённую опасность представляет нарезка объекта на части. Очень редко, но можно видеть ситуацию, когда в процессе нарезки образуются части, меньшие чем соседний объект. В этом случае получится, что бывший раньше меньшим, становится больше части бывшего большого и выходит на передний план. Поэтому после операции нарезки следует внимательно просмотреть получившуюся карту, чтобы сразу заметить неправильное отображение. В любом случае необходимо по возможности избегать вложенных друг в друга объектов и перекрытий. В этом случае гарантируется идентичность отображения данных до и после нарезки. Как этого добиться я расскажу ниже. Просмотр готового материала возможен не только в ГИС Русса, но и в GPSMapEdit. Алгоритм отображения объектов у них одинаков.

На самом деле в абсолютном большинстве случаев карта в получается именно такой, какой Вы её видели в окне программы. Но эти правила обязательно запомните.

Создание и редактирование объектов.

Я долго думал каким образом описать процесс работы с объектами. С одной стороны, просто необходимо познакомить Вас с основными принципами, с другой стороны очень не хотелось повторяться, так как основные принципы незначительно разняться от одного типа объекта к другому. Кроме всего прочего, хотелось бы поподробнее рассмотреть вопросы, связанные с работой в проекте "Нарисуй карту", а так же с оптимальной организацией работы с объектами. В результате я решил остановиться на неожиданном, с первой точки зрения, варианте. В этом пункте лекции мы с Вами рассмотрим процесс создания и редактирования сразу всех объектов. А далее мы сразу перейдём к вопросам по организации процесса создания карты и способах избежать возможные неприятные неожиданности.

Тот, кто хоть немного работал в любом редакторе, ориентированном на векторную графику, сразу же поймёт суть каждого из трёх типов векторных объектов. Но, в тоже время, увидит разницу между настоящими векторными объектами таких редакторов, как Corel DRAW или Adobe Ilustrator, и объектами, присутствующими в программе GPSMapEdit. И на самом деле, объекты на нашей карте будут образованы не кривыми, а только прямыми линиями, проходящими через опорные узлы. В этом смысле эти объекты не являются векторными в полном смысле этого слова.

Слева кривая описана 2 точками, как в Corel DRAW,

справа 11 точками, как в GPSMapEdit.

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

Какие объекты можно создавать в программе GPSMapEdit? Сначала давайте сформулируем их отличительные признаки.

Point или Узел - точка, имеющая свои координаты. Не путать с объектом Точка, так как узел не имеет других свойств, кроме координат. В объектах "Линия" и "Полигон" он служит связующим звеном между прямыми линиями, определяющими форму этих объектов.

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

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

Poligon или Полигон - объект, вписанный в границы, определяемые узлами замкнутой линии. Всё пространство, находящееся внутри этой линии, является этим же объектом.

Из этих определений Вы должны понять, что чем больше узлов будет у Вас в объектах типов "Polyline" и "Polygon", тем более точно и подробнее мы сможем описать форму этих объектов. Именно положение и количество узлов, составляющих эти объекты, подвергается генерализации в зависимости от масштабов слоёв.

Для создания любого объекта необходимо выбрать соответствующий инструмент. Таким инструментом является инструмент "Create object". Проще всего воспользоваться полем выбора на инструментальной панели с иконками, и выбрать соответствующий тип объекта. Если Вы выбрали объект типа "Point", то Вам достаточно указать курсором на то место, где должен находиться этот объект и, нажав левую кнопку мыши, создать в этом месте точку. Если нужно создать "Polyline", то просто сформируйте узлами линию необходимой формы и длины. Объект "Polygone" создаётся также, как и линия, но здесь нужный участок нужно отметить узлами по контуру. Завершение операции создания линии и полигона завершается нажатием клавиши "Enter". Все операции по созданию объектов очень легки и наглядны. С ними у Вас сложностей не будет.

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

Некоторые из доступных типов для объектов "Polygon".

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

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

Для редактирования свойств любого объекта необходимо выбрать инструмент "Select objects" и выделить с его помощью этот самый объект. Имеется возможность выделения сразу нескольких объектов. Для этого можно или очертить прямоугольную область, в которой будут выделены полностью попавшие в эту область объекты, или поочерёдно выделить нужные объекты, удерживая клавишу Shift. Эта операция является стандартной для большинства приложений Windows. Нажав после этого правую кнопку мыши, можно увидеть следующее меню:

Многие пункты Вам уже знакомы. Основными в редактировании объектов являются пункты "Modify" или Изменить и "Properties" или Свойства. Возможности их во многих вещах пересекаются, но в каждом есть то, чего нет в другом.

Сначала про пункт "Modify". Здесь можно изменить имя объекта - "Label", его тип - "Type", преобразовать его в другой вид объекта - "Kind". Причём возможно только преобразование из полигона в линию и обратно. Что вполне логично. Немного особняком стоит команда "Extend all elements up to level" или Копировать все элементы объекта на более высокие слои. Эта команда позволяет копировать выбранный объект на один или несколько слоёв. После выбора Вам будет предложено указать до какого слоя включительно следует копировать объект. Не забывайте имеющееся количество слоёв и то, что их нумерация начинается с нуля.

Очень полезным может оказаться инструмент "Join objects". С его помощью можно объединить несколько объектов. Просто выделите несколько объектов одного типа, например полигонов, и примените к ним эту операцию.

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

Первая вкладка так и называется - "Properties".

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

Следующие вкладки содержат только справочную информацию об объекте. Наиболее информативным является вкладка "Elements".

Здесь дана информация о выделенном или выделенных объектах. Так можно посмотреть до какого слоя скопирован этот объект, на каком слое находится сейчас, координаты первой точки объекта, количество узлов, занимаемая площадь. Есть возможность вручную задавать координаты для каждого узла. Для этого надо выбрать "Edit". Выбранные объекты можно удалить или копировать на другой слой.

Немного особняком стоит команда "Refresh inners" или Обновить внутренние полигоны. Если по какой-то причине объекты отображаются не в соответствии с правилами, то эта операция перераспределяет их как надо. О правилах отображения объектов мы поговорим позднее.

Следующая вкладка содержит кусок кода в Польском формате, описывающий выбранный объект.

"Extras" или специальные возможности в настоящее время не используется.

Но возможности редактирования на этом не заканчиваются. Важнейшим инструментом для редактирования формы объектов является инструмент "Move points". Он позволяет работать с узлами объектов. А эти узлы, как Вам уже известно, как раз и формируют положение для точек и форму для линий и полигонов. Выберем на инструментальной панели этот инструмент - . После этого выделим любой полигон. Сразу становится понятно что произошло - стали видны узлы, формирующие данный объект. Что с ними можно сделать? Выделив нужный узел, его можно перемещать. Наведя на него курсор и нажав правую кнопку мыши, его можно удалить. Соответственно, если поставить курсор на участок линии не содержащий узлов, в предыдущем диалоге пункт "Delete point" смениться на "Add point here" или Добавить узел в этом месте. Напомню, что точка является объектом, поэтому с ней и работать лучше как с объектом. Для объектов типа линия есть ещё одна интересная возможность. Это функция разрыва линии в нужном участке - "Split polyline". С её помощью Вы можете разрезать линию в нужном месте. В результате получатся два разных объекта типа линия. Это будет видно при выделении какого либо из получившихся отрезков.

Борьба с вложенностью объектов.

При всёй простоте создания объектов, есть одна очень важная вещь, о которой всегда следует помнить. Это порядок распределения полигонов в зависимости от их площади. Эту зависимость мы уже знаем. Теперь надо каким-то образом определить пути, которые позволят нам избежать проблем с их неправильным распределением.

Первым на очереди идёт самый сложный случай - наложение двух полигонов, когда ни один из них не вписан в другой. Почему самый сложный? Потому что в данном случае придётся всё делать руками. Ничего не поделать - остаётся только инструмент "Move points". Самый идеальный случай расположения соприкасающихся объектов, это когда количество узлов в месте соприкосновения одинаково и эти узлы расположены в одних и тех же координатах у обоих полигонов. Но попасть "один-в-один" достаточно проблематично. Неужели нам так никто и не поможет? Помощник найдётся. Давайте вспомним настройку программы. Одним из пунктов там была функция "Stick to neighbours" которую можно вольно перевести как "Прилипать к ближайшим узлам". Если включить эту функцию, то вокруг перемещаемого или вновь создаваемого узла образуется как бы "поле притяжения" и, оказываясь около ближайшего узла соседнего объекта, этот узел фактически притягивается к другому. Причём всегда притягивается именно выделенный узел, а не тот, который принадлежит другому объекту. Таким образом, при достаточной усидчивости, можно сделать идеальное соприкосновение двух объектов.

Другим способом является анализ или искуственное увеличение одного объекта относительно другого. Каким образом это происходит. Например у Вас есть задача очертить береговую линию. Встаёт резонный вопрос - с чего начать. Всего два варианта - с моря или с берега. В данном случае следует внимательно посмотреть и примерно оценить площадь того и другого. В большинстве случаев площадь моря больше площади береговой черты. Поэтому если мы обведём очертания берега с помощью полигона, обозначающего море, а затем нарисуем берег с перекрытием на море, то так как меньшим будет полигон "Берег", он окажется сверху и закроет очертания берега. Если мы сделаем наоборот - очертим берег с помощью полигона "Берег" а потом нарисуем полигон "Море" с перекрытием на часть берега, то в этом случае очертание берега будет сверху.

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

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

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

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

Другим случаем является полное вложение одного объекта в другой. Для примера возьмём остров на рисунке выше. В этом случае наши действия будут следующими. Сначала сделаем генерализацию. после этого выделим объект "Остров" и скопируем его в буфер обмена. Затем выделите больший объект и, удерживая клавишу Shift, вложенный. Окажутся выделенными оба объекта. Далее примените команду "Join objects". В результате этой команды внутренний полигон вырежется из другого. После всего этого нам останется только вставить обратно из буфера обмена наше озеро.

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

Но сохранить в таком виде файл в формате RUS не получится. Поэтому стоит сразу применить команду "Merge inner poligons". После этого у объекта "Море" произойдёт соединение внутренней области с внешней. При этом возникает чётко видимая перемычка между ними. Посмотрите внимательно, и Вы поймёте как это произошло. На карте в программе ГИС Русса эта перемычка не видна.

Преобразование данных, полученных из навигаторов.

Одной из задач этого курса лекций является задача научить Вас создавать и актуализировать карты для программы ГИС Русса. О самом проекте я расскажу в заключительной части, а здесь мы коснёмся вопросов практической работы по корректировке существующих данных. Как Вам уже известно, на сайте программы ГИС Русса выложены карты всей территории России в детальности, эквивалентной масштабу 1:500000 (5км). Сейчас стоит задача с Вашей помощью сделать карты более достоверными. У каждого, кто пользуется системой GPS, со временем накапливается достаточно большое количество треков и различных путевых точек. Многие из этих данных можно считать достаточно точными. Поэтому, если произвести коррекцию какого-либо участка дороги или реки на основании существующего трека или пересечения дорог на основании точек, то можно говорить о значительном увеличении достоверности карты на данном участке. Поэтому давайте попробуем пройтись по всему процессу преобразования данных из навигаторов в данные векторной карты.

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

Существует два способа реализации поставленной задачи. Каждый из них по своему хорош и имеет полное право на применение. Рассмотрим сначала первый способ.

Он заключается в подгонке имеющейся линии, обозначающей дорогу, под имеющийся трек. Для этого сначала загрузим имеющуюся векторную карту. Затем последовательно добавим на неё наш трек и путевую точку - "File/Add...". Получилось примерно следующее:

Здесь нам чётко видно, что новая трасса в данный момент забирает чуть выше и проходит через населённый пункт. Для первого способа нам необходим всего один инструмент - Move points. Выбрав этот инструмент, выделяем старую трассу. Стали видны узлы, которые её формируют. Как Вы уже знаете, с помощью данного инструмента можно перемещать, удалять и добавлять узлы. То есть всё что нам необходимо, это используя существующие или добавляя новые узлы последовательно перемещать их на линию трека. Постепенно форма требуемого участка дороги будет приобретать форму трека.

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

Для этого выберем эту линию с помощью всё того же инструмента Move points. Выделим узел, находящийся на первом из намеченных нами мест разрыва. Если узла в этом месте нет, то его нужно создать. Далее, нажав правую кнопку мыши точно над этим узлом, выбираем команду "Split polyline" или Разделить линию. После этого должны получится две линии. Это хорошо видно по характерным признакам выделенного объекта. Теперь тоже самое нужно сделать в другой точке. Таким образом у нас получится три линии, которые были когда-то одной. Теперь можно даже не меняя инструмента удалить ненужный фрагмент.

Здесь, для наглядности, я, вместо удаления, преобразовал ненужный участок дороги в другой объект, отображаемый пунктиром. На самом деле вместо пунктира будет разрыв. Теперь стоит заняться треком. Чтобы преобразовать его в линию надо выделить его с помощью инструмента "Select objects" и в меню, выпадающем по нажатию правой кнопки мыши, выбрать пункт "Convert to Polyline...". После выбора этого пункта Вам будет необходимо указать слой, на котором будет находится получившаяся линия и её тип. Лучше сразу выбрать тип, совпадающий с тем, который присвоен объекту, с которым планируется его объединить.

Теперь, когда трек преобразован в линию, он нам будет только мешать. Поэтому уберём его, сделав неактивным пункт "View/Show attachments". После этого все присоединённые объекты сделаются невидимыми. Теперь пришла пора проделать те же операции, которые мы проделали с линией дороги. Только теперь нам нужно вырезать и оставить другой участок, который возместит тот, который мы вырезали.

Как видно, остались небольшие зазоры между этими тремя линиями. Не беда. Всё что необходимо сделать, это подвести конечные узлы линии старой дороги к соответствующим концам новой. Почему не наоборот Вы уже поняли - потому что большей достоверностью обладают узлы линии, полученной из трека. Не пренебрегайте масштабированием. Теперь выделите сначала одну линию, а затем, с нажатой клавишей Shift, остальные две. А затем, вызвав дополнительное меню по нажатию правой кнопки мыши, примените команду "Join objects" или Объединить объекты. В результате у нас получилась одна линия, обозначающая дорогу. На откорректированном участке она в точности повторяет трек.

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

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

Оптимальная организация работы.

Позволю себе немного отвлечься и высказать своё мнение по работе с программами в целом. В наше время, когда компьютер уже не является редкостью, всё больше людей считают, что они умеют работать на компьютере. Зачастую, даже в объявлениях работодателей, в требованиях к работнику помимо прочего стоит - "умение работать на компьютере". Почему-то мало кто понимает, что на компьютере не работают. Работают в программах. Например, если я в достаточной мере изучил, например, 3D Studio MAX (программа трёхмерной графики и анимации), то это совсем не значит, что я умею работать в элементарном для многих Microsoft Excel.

С другой стороны, что значит РАБОТАТЬ? На мой взгляд, это знание возможностей программы и умение их использовать. Как пример. Почти у 100% владельцев компьютеров стоит программа Adobe Photoshop. Все знают, что она позволяет "работать с картинками". Только на этом основании 60-80% людей заявляет, что они знают эту программу. Многие при этом, с помощью встроенных эффектов, умудрились всего лишь пару раз испортить несколько изображений из Интернета. Они ничего не знают о способах представления цвета, возможностях слоёв, форматах хранения и всём остальном, но твёрдо заявляют: "Фотошоп? А! Знаю. Работал я в нём. Ерунда какая-то." Поэтому прежде чем выполнять работу с помощью любой программы, необходимо знать как можно больше о возможностях этой программы. И когда человек говорит мне, что он знает программу, я всегда прошу показать мне что он сделал. Только тогда можно будет говорить об умении работать.

В процессе работы, каждый человек определяет свой стиль её выполнения. Это называется - Мастерство. Но при этом существуют какие-то правила, которых придерживается большинство. Поэтому я приведу здесь рекомендации, знание которых будет Вам полезно. Не обещаю, что это будет законченный перечень, но я постараюсь довести до Вас ту информацию, которую я знаю и о которой меня чаще всего спрашивают.

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

Не спешите. Определите план работы. Сохраняйте скорректированную карту в файле с новым именем, чтобы всегда можно было вернуть или проверить данные.

Определите оптимальный размер карты. Не стоит стараться сохранить в одном файле карту, занимающую большую территорию. Это нецелесообразно с нескольких точек зрения. Большая карта занимает больше места, дольше грузится. В такой карте гораздо труднее правильно распределить данные в слоях. Гораздо практичнее разделить такую карту на несколько тематических карт в которых будет учтена специфика их использования. Например, для поездки в автомобиле на рыбалку, можно сделать две карты. Одну, содержащую только трассу и населённые пункты с указанием заправок, кафе, мастерских и т.п. А для рыбалки только озеро с указанными местами лова, избой, окрестностями и т.д. В этом случае каждая из этих карт будет максимально отвечать Вашим требованиям, быстро загружаться и работать, содержать только самые необходимые слои и при этом содержать все необходимые данные. К тому же такие карты легче редактировать.

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

Пользуйтесь горячими клавишами вызова инструментов. С самого начала приучите себя пользоваться горячими клавишами. Это незамедлительно даст Вам значительное ускорение работы. Может быть придётся немного задержаться на первых порах, но в дальнейшем Вы наверстаете время, потерянное на запоминание этих команд.

Пробуйте пользоваться и знайте назначение всех инструментов. Чем большее количество инструментов будет Вами использоваться, тем успешнее будет продвигаться работа. В данных лекциях многие инструменты были только обозначены своими функциями. Поэтому, при наличии свободного времени, попробуйте как работают эти инструменты. Не забывайте про правую кнопку мыши. В раскрывающихся меню попадаются очень интересные команды. Попробуйте поставить перед собой трудновыполнимую задачу и добейтесь её претворения. Такой опыт очень ценен.

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

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

Вложенность объектов. Очень острый вопрос. Но, к сожалению, назначить объекту параметры видимости в Польском формате нет никакой возможности. Пользуйтесь тем способом, который был описан выше. Избегайте наложений полигонов друг на друга.

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

Генерализация. Генерализация не только то, что происходит автоматически при работе с данными в программе GPSMapEdit. Во многом генерализация должна производиться Вами, исходя из соображений необходимости тех или иных данных на карте. Не перезагружайте карту. Она должна быть целевой. Продумайте цель с которой Вы создаёте карту и сделайте её соответствующей данной цели.

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

И самое главное. Есть давняя поговорка - Не ошибается только тот, кто ничего не делает. Порой надо заставить себя сделать что-то, но на то у человека и есть воля. Если Вы заинтересовались данной темой, значит Вы еще не совсем потеряли жажду жизни. Помните у Джека Лондона? Смок Беллью? Кем он был и кем стал. А стал он Настоящим Человеком.

Россия практически безгранична, по сравнению с другими странами. В этом нам помогает наша "нецивилизованность". Давайте же воспользуемся представленной нам возможностью, и найдём ещё одно место, где не ступала нога человека. Но почему бы не воспользоваться для этого плодами этой самой цивилизации? GPS создана для всех, но пользуются ей в основном романтики. И это здорово!

yug-gps.narod.ru

Создание и редактирование векторных карт: часть седьмая

Создание и редактирование векторных карт

часть 1 часть 2 часть 3 часть 4 часть 5 часть 6 часть 7 часть 8 часть 9 часть 10

Эта лекция будет посвящена очень важным настройкам, без знания которых практически невозможно работать с картами в программе GPSMapEdit. Все те понятия, о которых будет идти речь, абсолютно необходимо знать и очень чётко представлять их смысл. Надеюсь, что Вы внимательно ознакомитесь с данным материалом.

Понятие слоёв детализации карты.

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

Пример изменения детальности карты от масштаба.

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

Дело в том, что электронная карта позволяет одновременно содержать в себе несколько карт разных масштабов. Каждая из этих карт расположена на специальном слое - слое детализации. Количество слоёв, содержащих объекты, ограничено девятью. Это теоретически позволяет перекрыть весь диапазон общепринятых масштабов от 1:1 000 000 до 1:2 000 (см. лекцию №3). Фактическое количество необходимых слоёв определяет пользователь перед созданием карты. Их может быть не менее двух, Причём последний слой обязательно должен быть пустым.

Возьмем для примера карты, показанные выше, и будем считать, что эти карты векторные. Что произойдёт, если не сделать генерализации данных в каждом из указанных масштабов? Понятно, что если данные с масштаба 1000км перенести в масштаб 2км, то мы так никогда и не поймём, где мы в данный момент находимся. Всё потому, что на ней полностью отсутствуют мелкие детали местности. Теперь представим, что у нас наоборот все данные с карты масштаба 2км перенесены на масштаб 1000км. С первого взгляда в этом нет ничего плохого. Но на самом деле столь высокая детальность на таком мелком масштабе попросту не востребована. Мы всё равно не сможем ориентироваться так, как позволяет нам это сделать масштаб 2км. И всё потому что разрешающая способность дисплея КПК ограничена разрешением 320х240 точек. И больше данных он отобразить попросту не может.

То есть увеличение детальности карты на определённом масштабе после какого-то предела уже не увеличивает количество информации. Наоборот, за счёт нагромождения лишних объектов, наглядность зачастую страдает. Немаловажным аргументом в пользу генерализации электронных карт являются такие показатели, как размер файла карты и скорость отображения карты на дисплее КПК. Из чего складывается размер карты? В основном, из количества присутствующих на ней объектов. Каждый объект каждого слоя, как в Польском формате, так и в результирующем, описан отдельно от всех остальных. Поэтому, если на каждом из слоёв по N объектов, то их общее количество будет равняться - N умноженное на количество слоёв. Даже в том случае, если объекты в слоях полностью повторяют друг друга. Скорость отрисовки карты на дисплее зависит не только от быстродействия КПК, но и от количества данных, которые необходимо переработать. Чем меньше данных, тем меньшее время потребуется на обновление информации. Какой прок в карте, которая перерисовывается 20-30 секунд? За это время машина проезжает какое-то расстояние и перерисовка начинается заново.

Исходя из всего сказанного, сделаем вывод - генерализация является обязательной функцией для создания любых карт. Как же это можно сделать на практике? Как Вы уже знаете из предыдущей лекции, программа GPSMapEdit позволяет делать генерализацию данных автоматически с помощью команды "Generalize points of all polylines & polygons". При этом расположение узлов всех объектов подгоняется под минимально допустимую сетку. Для каждого масштаба слоя эта сетка своя. Она рассчитана на основании того, что другие, промежуточные, данные просто невозможно будет отобразить. Следует отметить, что даже если Вы не применяли команду генерализации при создании объектов карты, то это всё равно произойдёт, когда Вы дадите команду для преобразования карты в формат для программы ГИС Русса. Поэтому лучше самим периодически давать эту команду для того, что бы сразу видеть каким образом все объекты будут выглядеть на дисплее КПК. После того, как генерализация будет выполнена, Вы сможете увидеть сводку по результатам. Там будет указано сколько узлов и объектов было удалено во время генерализации.

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

Настройка свойств карты.

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

В первую очередь запустим программу GPSMapEdit и загрузим в неё любой, скачанный Вами файл карты. Напомню, что загрузить готовую векторную карту интересующего Вас района России можно на сайте ГИСРусса. Только после этого нам станет доступен нужный пункт меню.

Откроем окно настройки свойств карты (File - MapProperties или Alt+Enter). Перед нами появится панель со множеством вкладок. Первая вкладка, открытая по умолчанию, называется Header или заголовок карты.

Header.

Здесь содержится информация о карте. Рассмотрим каждый пункт данного окна начиная сверху.

Type set - типы доступных объектов. В этом окне происходит выбор целевого формата данных. Этот выбор определяет какие типы объектов будут доступны при создании карты. В настоящее время доступен выбор двух наборов. Первым идёт набор объектов для навигаторов Garmin, второй для программы ГИС Русса. Следует помнить, что для карт в формате программы ГИС Русса можно будет расширять количество типов объектов, в то время как для навигаторов Garmin этот выбор строго ограничен производителем. Рекомендую сразу проверить эту установку и поставить её в соответствии с выбранным форматом.

ID - номер карты. Номер карты был очень важен для навигаторов Garmin. Для программы ГИС Русса этот параметр не является обязательным и может быть упущен. Номер карты должен содержать 8 цифр. Другие символы не допускаются. Можете использовать его по своему усмотрению. Например для обозначения номера версии файла карты.

Name - имя карты. Имя карты несёт в себе справочную информацию о карте. Эта информация может быть любой. Лучше всего давать имя, указав наименование района или главного населённого пункта. Имя карты может состоять из любых букв, цифр и прочих символов. Учитывая "всеядность" программы ГИС Русса, рекомендую использовать кириллицу.

Datum - датум. Программа GPSMapEdit работает только с одним датумом. Это, принятый во всём мире, геоцентрический датум WGS84. Именно в этом датуме передают свои данные все приёмники сигналов GPS.

Elevation units - единицы измерения высоты. Выбор ограничен двумя пунктами. Это футы и, всем нам понятные, метры. Некоторые объекты на карте несут информацию о высоте. К таким объектам относятся линии высот и глубин и точки, обозначающие вершины. Поэтому мы, как приверженцы метрической системы, скорее всего выберем метры в качестве единиц измерения высоты.

Code page - кодовая страница. Как Вы уже наверно знаете, варианты кодовой страницы в среде Windows отвечают за корректное отображение символов различных национальных языков. Здесь тоже самое - выбирается вариант кодовой страницы для отображения названий объектов на карте. Выбор вариантов достаточно большой. В наших условиях вполне резонным будет выбор кодовой страницы номер 1251, поддерживающей наши национальные символы.

Coding Schema - кодовая схема. Шрифты имеют возможность кодироваться разными способами - семибитовое кодирование, например, подразумевает наличие только заглавных букв латинского алфавита. Для отображения заглавных и прописных символов кириллицы достаточно однобайтового кодирования. Обычно менять ничего не требуется. Выбор наиболее подходящих вариантов происходит автоматически, вслед за выбором кодовой страницы.

File properties -свойства файла карты. После нажатия этой кнопки выводятся стандартные данные о файле карты. Можно посмотреть все атрибуты включая размер, дату создания и пр.

Levels

Переходим к важнейшему окну настроек. Оно называется "Levels", что в переводе означает те самые слои, о которых так подробно рассказывалось чуть выше.

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

Первым пунктом характеристики слоёв идет пункт "Level". В столбце под ним указаны существующие слои. Обозначение слоёв соответствует правилам Польского формата и присваиваются автоматически. Отсчёт начинается с нулевого слоя - Level0.

"Bits" - это понятие логических масштабов взято из формата для навигаторов. Там оно обозначается именно так. Каждое значение соответствует своему масштабу. С увеличением значения, увеличивается масштаб.

Для большей наглядности эти данные переведены в понятные нам единицы. Значения масштабов в более привычном виде указаны в поле "GPS zoom" - масштаб в навигаторе. Эти два значения жёстко связаны. Именно ими и задаётся диапазон масштабов, при которых тот или иной слой будет отображаться в программе ГИС Русса. Единственное и обязательное условие - от первого слоя к последнему масштаб должен уменьшаться.

Помните, когда речь шла о минимально возможном расстоянии между узлами? Это расстояние можно посмотреть в пункте "Lat grid" - это расстояние между ячейками сетки. Расстояние между узлами меньше, чем указанное для каждого слоя, быть не может. Поэтому всегда следует начинать с самого крупного масштаба, который всегда находится на первом слое - "Level0". Он будет содержать самые подробные данные. Потом эти данные можно будет скопировать на следующие слои и, применив команду "Generalize points of all polylines & polygons", сразу же получить необходимую степень детальности.

Значение параметра "MapSource zoom" в формате ГИС Русса не учитывается. Его значение не влияет на характеристики карты в формате программы ГИС Русса.

Если Вы загрузили готовую карту, взяв её с сайта программы ГИС Русса, то в ней присутствует только один слой с объектами. Однако в этом случае мы, в окне "Levels", видим, что при на самом деле у нас присутствует не один, а два слоя. Всё правильно. Дело в том, что в Польском формате есть одно обязательное условие - последний слой всегда должен быть пустым. То есть не содержать никаких объектов. Программа GPSMapEdit сама следит за этим условием и просто не позволит создавать объекты на последнем слое. Напомню, что отсчёт начинается с нулевого слоя.

Теперь пришла пора определиться с количеством слоёв на нашей будущей карты и создать их. Обычно бывает вполне достаточно трёх-четырёх слоёв. Остановимся на трёх. Значит необходимо к существующим добавить ещё два слоя. Предположим также, что нам надо чтобы первый слой так и остался бы первым.

Для этого выделим слой "Level1" и нажмём на кнопку "Insert before" - вставить до текущего. При этом нулевой слой "Level0" у нас остался на месте, а после него появился пустой слой "Level1". Слой, бывший последним, теперь сместился и носит название "Level2". Обратите внимание, что все объекты остались на слое "Level0". Проделаем эту процедуру ещё раз для добавления ещё одного слоя. Только теперь можно выделить любой из двух последних слоёв - на них всё равно нет объектов. Почему мы не стали добавлять новый слой перед первым? В принципе это делать можно. Но в этом случае надо всегда помнить, что поставив для слоя, содержащего объекты, меньший масштаб и применив генерализацию, мы рискуем потерять в детальности за счёт более больших расстояний между ячейками сетки генерализации. Таким образом всегда лучше оставлять исходным или при необходимости увеличивать масштаб для слоя, содержащего объекты. Эта рекомендация дана только для случая первичного формирования слоёв. В процессе дальнейшей работы всё будет как раз наоборот - данные со слоя большего масштаба надо копировать на более мелкий масштаб и генерализовать. Таким образом у Вас окажется неискажённой исходная информация и появится новая, полностью соответствующая новому масштабу.

Теперь нам надо определить при каком масштабе каждый из этих слоёв будет отображаться на экране КПК. Щелкнем два раза на слое "Level0" или нажмём на кнопку "Change". Откроется окно "Level settings" - настройки слоя. В этом окне есть выбор двух параметров. Первый называется "Bits" вольно переведём это как "Масштаб в КПК", и "MapSource zoom range" (Масштаб для программы MapSource). Последний нам не интересен.

Каким образом нам сделать так, чтобы первый слой в нашей карте на дисплее КПК стал видимым при масштабах от 0 до 300м, а при более мелком, его место занимал следующий? Очень просто! Выбираем для первого слоя "Levels0" из значений раскрывающегося поля "Bits" значение 23, что соответствует масштабу 200м - 300м.

Теперь второй слой. Делаем тоже самое, но диапазон ставим от 800м до 1,2км. Этим самым мы установили предел видимости для следующего слоя. Третьему слою поставим значение 5км-8км.

Теперь мы можем рассчитывать на то, что первый слой будет виден от максимального масштабирования до 300м, второй от 500м до 1,2км и последний от 2км до 8км.

Теперь обратим внимание на тот слой, который у нас всегда остаётся девственно чистым. В нашем случае - Level3. Его масштаб, как Вы уже наверно догадались, должен быть меньше, чем у предыдущего. Поэтому поставим его равным 12км. На этом настройку слоёв можно считать законченной.

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

Сущность разбиения больших объектов на части.

В программе GPSMapEdit, в случае выбора набора для Garmin, есть раздел настроек, специально предназначенный для настройки компилятора cGPSMapper. Среди этих настроек есть один очень интересный пункт. Он называется TRE size. Сейчас, при работе с данными в формате ГИС Русса, этот пункт настройки убран. Основной причиной принятия этого решения было то, что в процессе преобразования данных в формат RUS, этот компилятор напрямую не используется. Вместо него теперь можно использовать команду "Slice all objects..." или Разрезать объекты на части. Для чего это нужно?

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

Для простоты, представим, что у нас есть объект, обозначающий море с достаточно длинной и подробной береговой линией. Весь этот объект полностью виден на дисплее в масштабе 20км. В этом случае расчёт и отрисовка всего объекта с учётом генерализации при таком масштабе полностью оправдана. Но давайте представим себе, что мы находимся в море и текущий масштаб равен 200м. Берегов в таком масштабе может быть не видно или виден небольшой участок. Но в случае если этот объект представлен одним полигоном, он будет просчитан полностью со всем множеством узлов, большинство из которых не присутствуют на карте в данный момент. При этом их количество значительно превысит то, которое было в предыдущем масштабе из за увеличения детальности более крупномасштабного слоя. Это очень сильно замедляет отрисовку объектов и, как следствие, карты в целом. Чтобы этого избежать и было введёно ограничение на размер объекта. В этом случае один большой объект режется на множество маленьких блоков, в сумме точно повторяющих исходный полигон. Причём на каждом слое размер этих блоков может быть разным. Это происходит потому, что размер блока определяется при выполнении операции разрезки больших объектов.

Если взять предыдущий пример, то получится, что в масштабе 20км будет рассчитано положение всего объекта, состоящего, например, из шести частей. К тому же не забываем про различную генерализацию для каждого слоя. А в масштабе 200м будут отрисованы всего четыре прямоугольника, часть которых действительно попала на дисплей. Это в том случае, если не видно береговой черты. А общее количество блоков для этого полигона в масштабе 200м будет около 40. Представьте, что проще - рассчитать положение каждого узла для одного объекта, состоящего из 1000 узлов, 98% которых просто нет в данное время на дисплее, или четырёх, содержащих в сумме 16 узлов или чуть больше, если видно часть береговой линии?

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

Остальные вкладки являются в большей степени информационными. Вкратце рассмотрим их назначение.

Bounds.

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

Statistics.

Окно статистики содержит информацию по всем имеющимся в данный момент объектах включая точки, линии и полигоны. Для просмотра статистики можно выбрать конкретный слой. В целом данное окно не представляет большого интереса и является достаточно простым для восприятия.

Attachments.

Все типы вспомогательных файлов, которые были загружены нами в процессе создания векторной карты, могут быть просмотрены в окне присоединённых файлов. Присоединёнными файлами в данном случае считаются файлы, содержащие данные, помогающие нам в точном создании своей карты. К ним относятся растровые карты, треки и точки пользователя. Две кнопки позволяют нам оперативно найти на карте интересующий нас объект (Locate on map) и удалить ненужные данные (Remove).

В самом информационном окне находятся данные о типе файла данных (Type), пути к файлу (File path), количестве треков (Tracks) и точек пользователя (Waypoints) в каждом файле.

Исходный код (Source).

Окно исходного кода показывает нам все данные о заголовке карты в Польском формате. Перед этим необходимо убедиться, что файл карты сохранён в этом формате (File - Save As... тип Polish format *.mp, *.txt). После этого мы можем видеть все данные о заголовке карты. Структуру заголовка карты в Польском формате мы рассматривали ранее. Эти данные являются вспомогательными и их всегда можно отредактировать через меню Header и Levels, которые мы только что рассмотрели.

На этом настройка нашей будущей карты заканчивается. Рекомендую ещё раз пробежаться по основным настройкам и попытаться чётко представить себе назначение каждого из них.

yug-gps.narod.ru

Создание векторных карт для Magellan Triton и eXplorist серии x10

Ниже описывается процесс создания векторной карты для Magellan Triton или eXplorist серии x10 (imi файл), содержащей POI (Points Of Interest) и топографическую информацию (сетку высот) на основе имеющегося файла в формате MP (текстовый файл в "польской" нотации) или векторной карты для навигаторов Garmin (img файл).

Это всего лишь попытка обобщить свой опыт и ту информацию, которую удалось найти в сети по данному вопросу.

1. Необходимое программное обеспечение, установка и настройка

Для работы потребуются следующие программы:

Для конвертации карт Garmin потребуется программа

Для подготовки сетки высот понадобятся также:

BLXCalc и MPSplitter не требуют установки. Достаточно распаковать архивы в отдельную папку.

Установка ММО10 и ММО27 производится обычным образом - распаковывается архив и запускается Setup. Устанавливать их нужно в отдельные папки. Для примера предположим что это будут папки 

Содержимое архива unhideMMO.zip распаковывается в папку с ММО10.

Установка GPSMapEtit и GM также производится обычным образом.

Теперь переходим к настройке. Сначала заходим в папку c:\Program Files\MobileMapper Office 1.0\ и запускаем там программу unhideMMO.exe. Это впоследствии потребуется для создания слоя POI.

Далее, заходим в папку c:\Program Files\MobileMapper Office 1.0\MAP\ и создаем там еще одну папку - BLX (c:\Program Files\MobileMapper Office 1.0\MAP\BLX\). После этого в папке \MAP\ (c:\Program Files\MobileMapper Office 1.0\MAP\) нужно создать два файла:

[BLX0]

total_blx_scale=0 6

lower_scale_index=1

params=2 8 30   4 12 30   10 20 30   20 40 30   40 100 30   80 200 30

screen_mesh=10

memory=4 10 40 32

label_mode=2

auto_step=1

и topo3d.ini, содержащий:

[BLX0]

PATH=BLX\

total_blx_scale=1 7

0=BLXfile0.blx

;1=AnotherBLXfile1.blx

;2=AnotherBLXfile2.blx

scale_range=0 5000

lower_scale_index=0

scales=0 50 100 200 500 1000 2000

params=10 20 20   20 50 20   20 50 40   40 100 50   50 200 80   100 250 100   100 250 0

screen_mesh=10

memory=10 50 200 64

label_mode=2

real_center=0

show_nodes=0

mul_coef=2

add_coef=1

auto_step=1

Также нужно открыть файлы c:\Program Files\MobileMapper Office 1.0\MAP\map.ini и c:\Program Files\MobileMapper Office 1.0\MAP\map.def и убедиться, что там присутствуют строки

[ISO_DRAW]

labels=15  170 175 80 15 s 255 255 255 255

lines_style=3  220 220 190 1    170 175 80 1     255 0 0 1

Если их нет - добавить, если закомментированы, убрать комментарий.

Все это потребуется для добавления топографической информации в файл с картой.

Далее переходим в папку c:\Program Files\MobileMapper Office 2.7\ и открываем в редакторе файл MMOffice.ini 

Сначала устанавливаем формат выходного файла с картой. Для Тритонов и Эксплористов это IMI. Для этого нужно в секции

[DEVICE_DEFAULTS]

добавить строку

Byte_Order=1

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

Conv_Memory_Size=32768

заменить на значение на побольше. Например:

Conv_Memory_Size=1048576

Теперь правим путь к рабочей папке таак, чтобы он указывал на рабочую папку ММО10. Для этого в секции

[PATHS]

заменяем строку

Main_Map_Path=VECTMAPS\ 

на

Main_Map_Path=c:\Program Files\MobileMapper Office 1.0\MAP\

а строку

Export_Map_Path=VECTMAPS\

на

Export_Map_Path=c:\Program Files\MobileMapper Office 1.0\MAP\ 

кроме того в этой же секции добавляем строку

Topo3DInit=topo3d.ini,BLX0

Сохраняем файл и выходим из редактора.

Последний этап - настройка библиотек GDAL и PROJ.

Открываем на компьютере "Панель Управления", выбираем в ней секцию "Система". Переходим на вкладку "Дополнительно" и нажимаем на кнопку "Переменные среды". В списке "Системные переменные" выбираем переменную Path и нажимаем "Изменить". Дописываем в конец строки (через разделитель - точку с запятой) пути для GDAL и PROJ. В нашем случае надо добавить следующую строку:

;c:\Program Files\gdalwin32-1.6\bin;c:\Program Files\proj\bin

Нажимаем "Ok". Теперь в том же списке нажимаем "Создать" и вводим 

"Имя переменной" GLAL_DATA

"Значение переменной" c:\Program Files\gdalwin32-1.6\data

Нажимаем "Ok". И повторяем еще раз:

"Имя переменной" PROJ_LIB

"Значение переменной" c:\Program Files\proj\NAD

И опять "Ok"

На этом установка и настройка всех программ завершена.

2. Подготовка топографических данных (сетки высот)

Сначала нужно определить границы карты по широте-долготе. Сделать это можно, например, загрузив карту (неважно в каком формате - img или mp) в GPSMapEdit и выбрав "Файл" - "Свойства карты" - "Границы". К примеру там будет:

Север - N56°22.787'

Юг - N51°58.866'

Запад - E57°07.093'

Восток - E63°21.268'

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

Можно использовать два открытых источника данных по высотам - ASTER-GDEM и SRTM. Первый источник содержит данные по высоте до 83-й параллели с шагом 1", второй - до 60-й параллели с шагом 3". Первые данные точнее, но занимают в три раза больше по объему (и времени обработки на этапе подготовки карты).

На сайте ASTER-GDEM придется зарегистрироваться (это будет предложено сделать на этапе подготовки выбранных для скачивания данных), на SRTM регистрация не требуется.

На ASTER-GDEM выбор нужного участка происходит путем ввода координат границ, на SRTM файлы выбираются вручную (каждый файл - участок градус на градус, имя файла означает координаты его нижнего левого угла).

При скачивании большого количества данных (более 100 участков градус на градус) с ASTER-GDEM стоит разбивать их на части (это их внутренние ограничения).

Итак, допустим, что данные скачаны. В случае с ASTER-GDEM это будет один архив, содержащий много архивов, которые нужно извлечь из общего в отдельную папку (сами архивы распаковывать не нужно). Для SRTM это будет много архивов - их просто собрать в одну папку.

Далее. Запускаем GM и нажимаем кнопку "Открыть файлы с данными". Выбираем все файлы в папке с архивами данных по высотам и загружаем их. Загрузка может занять достаточно длительное время если файлов много. Ждем пока все данные загрузятся и на экране появится цветная картинка.

Убеждаемся, что в статус-строке нужная система координат и датум - должно быть GEO(WGS84). Если это не так, то выбираем "Инструменты" - "Настройка..." и там вкладку "Проекция". В пункте "Проекция" выбираем "Geographic (Latitude/Longitude)", а в списке  "СК" - "WGS84". При этом в списке "Плоские ед. изм." должно появиться "ARC DEGREES". Нажимаем "Ok".

Теперь выбираем "Файл" - "Экспорт сетки высот". Выбираем формат для экспорта - GeoTIFF. Когда появится вкладка "GeoTIFF Export Options", запускаем программу BLXCalc и нажимаем кнопку "Получить данные из GM". Если все нормально, то форма настроек экспорта в GM автоматически переключится на вкладку "Экспорт границ", также автоматически будет выбран вариант "Шир/Долг (град)", а данные из полей "Север-Юг-Запад-Восток" будут скопированы в соответствующие поля BLXCalc.

Теперь нажимаем кнопку "Считать" в BLXCalc - в полях "X-ось" и "Y-ось" появятся значения коэффициентов. Нажимаем "Передать данные в GM". Форма настроек экспорта в GM автоматически переключится на вкладку "GeoTIFF настройки", будет автоматически выбран вариант "16 бит целые числа" и отключена опция "Всегда создавать квадратные пиксели", а данные из полей "X-ось" и "Y-ось" будут автоматически перенесены в соответствующие поля формы GM.

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

На этом этап подготовки данных по высотам завершен.

3. Подготовка шейп-файлов

Данный этап занимает меньше времени, нежели подготовка сетки высот.

Для начала нужно получить исходный файл в формате MP (текстовый файл в "польской" нотации). Например, можно скачать карты OpenStreetMap в формате mp (качать по ссылкам "-mp-", по основной ссылке скачивается готовая карта для Garmin в формате img).

но можно использовать и гарминовские карты - тогда их потребуется загрузить в GPSMapEdit и сохранить в формате mp ("Файл" - "Сохранить как" выбрать "Польский формат (*.mp;*.txt)"). В картах из этого источника используется набор типов Garmin.

Можно воспользоваться альтернативным источником (скачивать по ссылке "mp" в предпоследнем столбце таблицы). Это тоже карты OSM, но здесь используется более богатый, совмещенный набор типов Garmin-Navitel.

Итак, у нас есть исходный файл в формате mp. Запускаем MPSplitter. При первом запуске программа предложит выбрать файл описания типов данных. Если используется карта из первого источника, то нужно выбрать файл type-garmin-ru.dat, если из второго - type-garmin-navitel-ru.dat (оба файла есть в архиве программы). Впоследствии можно будет использовать другой файл, отредактировав в файле MPSplitter.ini строку типа

[PATH]

TypeFile=type-garmin-ru.dat

Можно просто удалить (или закомментировать) эту строку, тогда при следующем запуске программа опять предложит выбрать файл описания типов.

Когда описание типов выбрано и программа запущена нужно создать описание слоев. По сути это правила распределения объектов из mp файла по слоям, которые впоследствии будут загружены в ММО для сборки карты. Подробно процедура описана в документации на MPSplitter.

Векторная карта состоит из слоев. Слой бывают трех типов - области (Area, Polygon), линии (Line, Polyline) и точки (Point). 

Каждый слой имеет свои атрибуты отображения на экране - масштаб, начиная с которого он становится виден, цвет и тип заливки (для областей) или тип линии (для линий) или значок (иконка для точек). Все объекты, расположенные в одном слое считаются однотипными (ММО вообще не работает с типами объектов, только со слоями) и отображаются на карте одинаково.

Кроме того, карта может еще содержать отдельный слой с POI (Points Of Interest). В этом слое точки (POI) разбиты на категории, каждой категории присваивается свой символ (иконка), которым принадлежащие этой категории точки обозначаются на карте.

Разница между точками в точечном слое и в слое POI заключается в том, что, во-первых, ММО предлагает крайне скудный выбор иконок для точечных слоев (для POI он намного богаче) и, во-вторых, в том, что при поиске объектов, расположенных на карте последний ведется по всему массиву объектов (даже без деления на типы слоев), а для POI поиск ведется в рамках заданной категории.

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

Задача программы MPSplitter - автоматизировать процедуру распределения объектов из mp файла по слоям для последующей загрузке последних в ММО для окончательной сборки карты. Пользователь формирует конфигурационный файл в котором определяются слои и указывается какие типы объектов в какой слой помещать. Полученный файл можно потом использовать для всех однотипных карт без дополнительной корректировки.

Процедура составления конфигурации проста - сначала добавляем слой нужного типа (Area, Line или Point), затем в этот слой добавляем типы объектов, которые должны в нем содержаться. Аналогичным образом конфигурируются POI с той разницей, что роль слоев там выполняют категории и для каждой категории назначается иконка.

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

После того, как все слои описаны, сохраняем конфигурационный файл, загружаем карту (mp) и запускаем процедуру обработки. Обработка одного файла занимает в среднем 10-20 минут в зависимости от размера. Для результатов работы рядом со входным файлом создется папка с таким же именем, где размещаются выходные файлы.

Т.к. порядок следования слоев играет существенную роль, каждому выходному файлу присваивается цифровой префикс, соответствующий его положению в дереве слоев на экране. Это сделано для удобства последующего добавления слоев в редакторе карт ММО. Первыми всегда идут слои типа Area, затем - Line, потом Point. POI выводятся в отдельную базу данных.

Слои выводятся в формате ESRI shape по три файла на слой (shp с координатами узлов, dbf с текстовыми атрибутами и shx - индексный файл). База данных POI выводится в файл POI.dbf. Кроме того формируется текстовый файл exportpoi.cfg, содержащий связку категорий POI и иконок для их отображения (содержимое этого файла позже вставляется в export.cfg ММО).

После завершения работы MPSplitter весь набор данных для сборки карты в ММО готов.

4. Сборка карты в MobileMapper Office

Первый этап - создание слоя POI. Для этого необходимо зайти в папку с ММО10 и запустить программу MMOfficePOI (эта программа появилась в результате работы утилиты unhideMMO). Внешне она выглядит как обычный ММО, но при вызове команды "Tools" - "Background maps..." вызывается не редактор карт, а диалог конвертации базы данных POI.

Важно! При запуске MMOfficePOI нужно быть уверенным что в настоящий момент нет подключенных в ММО27 карт. Иными словами, если перед этим что-то делалось в ММО27, то предварительно нужно запустить его, войти в редактор карт и, если там есть карта, помеченная "скрепочкой", отключить ее.

Первое, что нужно сделать для конвертации POI - загрузить полученный при помощи программы MPSplitter файл POI.dbf. Это делается нажатием кнопки "Add..." в нижней части диалога. После того, как файл загружен, в левом списке появится имя файла, а в правом список полей БД. Теперь нужно указать какая переменная в каком поле расположена. Для этого нужно просто ткнуть мышкой в поле Source Field в правом списке напротив каждого поле и из выпадающего списка выбрать соответствующую переменную.

Теперь можно сохранить проект на будущее в mpp файле - "Save As...". Сохраняется путь к POI БД и соответствие полей переменным.

Для создание слоя POI нажимаем "Convert". После того, как программа создаст слой POI, появится окно POI Setup с именами категорий и соответствующими иконками. Здесь иконки будут выбраны случайным образом и не совпадут с тем, что было обозначено при конфигурации MPSplitter. Это не беда, в окончательной карте, при просмотре ее в VantagePoint и на приборе все будет как положено. В данный момент нас интересует установка масштаба, начиная с которого POI будут отображаться на экране прибора. Масштаб устанавливается ползунком в нижней части окна. при движении ползунка вправо POI будут видны при меньшем увеличении, влево - при большем. Разумным будет установка масштаба 1:500 000 или 1:1 000 000. при более мелком масштабе отрисовка будет замедляться т.к. на экране окажется одновременно слишком много точек, при более крупном теряется обзорность карты.

После установки масштаба нажимаем "Ok" и выходим из программы. Больше ММО10 для этой карты нам не потребуется.

Осталось скопировать файл catscat.dat из папки \DATA\ ММО10 в аналогичную папку ММО27 и можно переходить к конфигурации слоев карты.

Запускаем ММО27, вызываем диалог редактора векторных карт ("Сервис" - "Фоновые карты" - вкладка "Векторные карты" - "Редактор карт"). Первое, что делаем - присваиваем имя нашей карте (поле "Имя карты") и устанавливаем масштаб, начиная с которого наша карта будет видна на экране прибора (при более мелком масштабе будет отображаться базовая карта или, если ее нет, вообще ничего не будет). Рекомендуется установить наиболее мелкий из возможных масштаб - 1:5 000 000.

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

При добавлении слоев следует иметь ввиду три, упоминавшихся выше, момента:

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

2. Внутри слоя нет деления объектов по типам - стиль отображения будет единым для всех объектов слоя.

3. Если поле LABEL для объекта пустое, то вместо него будет подставляться имя слоя. Это, опять же, учитывается при конфигурации MPSplitter (использование опции Use Default Label которая отвечает за подстановку имени типа в поле LABEL для тех объектов, у которых это поле пустое).

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

Когда все слои добавлены и настроены, сохраняем проект карты ("Файл" - "Сохранить") и создаем карту ("Действия" - "Создать карту"). Когда процесс создания карты завершится, закрываем диалог редактора карт. Теперь мы должны увидеть нашу карту в списке фоновых карт, причем, она должна быть уже подключена (отмечена символом "скрепка"). Нажимаем "Ok" и видим нашу карту на экране ММО.

Теперь остался последний шаг - внести некоторые изменения в файл export.cfg для более адекватного отображения карты на экране прибора. Редактировать этот файл имеет смысл только в тот момент, пока ММО не запущен, поэтому закрываем ММО27, переходим в папку \MAP\ ММО10 и загружаем в обычный текстовый редактор находящийся там файл export.cfg.

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

Первая задача решается внесением изменений в секции [LAYERS] и [COLORS4BITS].

В секции [LAYERS] мы видим список слоев в виде набора строк:

14=015_Railway_l  lay14  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

15=016_Highway_l  lay15  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

16=017_Majorroad_l  lay16  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

17=018_Road_l  lay17  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

18=020_Forestroad_l  lay18  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

19=021_Trail_l  lay19  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

20=022_Street_l  lay20  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

21=024_Water_l  lay21  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  MSOLID_LINE

В данном случае нас интересует последний параметр, обозначающий тип линии (для линейных слоев, для полигонов это тип заливки, для точек - тип точки). К сожалению, ММО предлагает использовать только стандартный набор типов линий - сплошная, пунктирная и т.п., в то время как прибор поддерживает набор специальных типов линий (список можно увидеть в корневой папке ММО в файле unit.ini): 

0=Single_Line,MSOLID_LINE

1=Dash_Line,DASH_LINE

2=Dot_Line,DOT_LINE

3=Federal_Highway,US_FEDERAL_HW_LINE

4=Interstate_Highway,US_INTERSTATE_HW_LINE

5=State_Highway,US_STATE_HW_LINE

6=Major_Road,US_MAJOR_RD_LINE

7=Street,US_STREET_LINE

8=Unpaved_Road,US_UNPAVED_RD_LINE

9=Trail,TRAIL_LINE

10=Railroad1,US_RR_LINE

11=Railroad2,US_RAIL_ROAD

12=River,RIVER_LINE

12=Stream,STREAM_LINE

13=Hydro Dam,HYDRO_DAM_LINE

14=Waterfall,WATERFALL_LINE

Чтобы добиться желаемого результата первым делом нужно заменить типы линий некоторых слоев в секции [LAYERS] следующим образом:

14=015_Railway_l  lay14  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_RAIL_ROAD

15=016_Highway_l  lay15  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_INTERSTATE_HW_LINE

16=017_Majorroad_l  lay16  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_STATE_HW_LINE

17=018_Road_l  lay17  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_MAJOR_RD_LINE

18=020_Forestroad_l  lay18  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_UNPAVED_RD_LINE

19=021_Trail_l  lay19  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  TRAIL_LINE

20=022_Street_l  lay20  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  US_STREET_LINE

21=024_Water_l  lay21  0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7  BLACK  RIVER_LINE

Видно, что тут для железной дороги указан специальный тип линии US_RAIL_ROAD, для лесной дороги US_UNPAVED_RD_LINE (дорога без покрытия) и т.п.

К сожалению, этого недостаточно. Нужно еще внести соответствующие изменения в секцию [COLORS4BITS]. Здесь все выглядит не так однозначно, хотя на самом деле все просто. вся секция состоит из одной строки - LAY_COLOR. Первое число = количество слоев, описываемых данной строкой. Дальше каждый слой описывается группой из трех параметров:

0 PAIL_YELLOW SOLID_FILL

0 - номер слоя (это заголовок строки в секции [LAYERS]), PAIL_YELLOW - цвет заливки (или линии для линейных слоев), SOLID_FILL - тип заливки (линии).

Т.е. нам нужно найти группы, начинающиеся с 14 и по 21:

...14 BLACK  MSOLID_LINE 15 BROWN  MSOLID_LINE 16 BROWN  MSOLID_LINE 17 BROWN  MSOLID_LINE 18 BLACK  MSOLID_LINE 19 BLACK  MSOLID_LINE 20 BROWN  MSOLID_LINE 21 CYAN MSOLID_LINE...

и заменить там тип линии на тот, что используется для соответствующего слоя в секции [LAYERS]:

...14 BLACK US_RAIL_ROAD 15 BROWN US_INTERSTATE_HW_LINE 16 BROWN US_STATE_HW_LINE 17 BROWN US_MAJOR_RD_LINE 18 BLACK US_UNPAVED_RD_LINE 19 BLACK TRAIL_LINE 20 BROWN US_STREET_LINE 21 CYAN RIVER_LINE...

И последний штрих - необходимо добавить информацию о категориях POI. Эта информация содержится в секции

[POI]

UNIT_PARAMS=0 8 0 0 0 0 0 7 0 0 0 0 0 6 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 BLACK NO_FILL

POI_INDEX=1

CAT_NUMBER=0

по умолчанию тут ничего нет. Нужная нам информация была подготовлена программой MPsplitter и сохранена в файле exportpoi.cfg в той папке, где расположены все результаты работы программы. Нам жостаточно всего лишь скопировать все содержимое этого файла вместо секции [POI] в export.cfg:

[POI]

UNIT_PARAMS=0 8 0 0 0 0 0 7 0 0 0 0 0 6 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 BLACK NO_FILL

POI_INDEX=1

CAT_NUMBER=41

0=Gora, a.bmp, AREA

1=Krupnyy gorod, a.bmp, LARGE_CITIES

2=Sredniy gorod, a.bmp, MEDIUM_CITIES

3=Poselok, a.bmp, SMALL_CITIES

4=Kafe, a.bmp, RESTUARANTS

5=Gostinitsa, a.bmp, HOTEL

6=Bolnitsa, a.bmp, MEDICAL_SERVICE

7=Apteka, a.bmp, PHARMACY

8=AZS, a.bmp, GAS_STATION

9=Ostanovka, a.bmp, BUS_STATION

10=Politsiya, a.bmp, POLICE_STATION

11=Produktovyy magazin, a.bmp, GROCERY_STORE

12=Parkovka, a.bmp, OPEN_PARKING

13=Avtoservis, a.bmp, AUTO_REPAIR

14=Rodnik, a.bmp, SPRING

15=Zoopark, a.bmp, ZOOS

16=Basseyn, a.bmp, SWIMMING

17=Mesto dlya kupaniya, a.bmp, SWIMMING

18=Lyzhnaya baza, a.bmp, SKIING

19=Tserkov, a.bmp, CHURCH

20=Magazin, a.bmp, GROCERY_STORE

21=Tonnel, a.bmp, TUNNEL

22=Most, a.bmp, BRIDGE

23=Dom, a.bmp, HOUSE

24=Mesto dlya otdykha, a.bmp, PARK

25=Vodopad, a.bmp, FALLS

26=Bashnya, a.bmp, TOWER

27=Stadion, a.bmp, SPORTS_COMPLEX

28=Pochta, a.bmp, CLOTHING_STORE

29=Sportzal, a.bmp, RECREATION_CENTER

30=Bankomat, a.bmp, ATM

31=Kladbishche, a.bmp, CHURCH

32=Attraktsiony, a.bmp, AMUSEMENT_PARK

33=Park, a.bmp, PARK

34=Arka, a.bmp, ARCH

35=Shkola, a.bmp, EDUCATION_CENTER

36=Teatr, a.bmp, ENTERTAINMENT

37=Kino, a.bmp, CINEMA

38=Bar, a.bmp, NIGHT_LIFE

39=Muzey, a.bmp, BANK

40=Biblioteka, a.bmp, LIBRARY

Теперь сохраняем отредактированный export.cfg и опять запускаем ММО27. Не стоит ожидать, что внесенные в export.cfg изменения будут заметны в ММО. Все настройки в этом файле применяются исключительно в процессе формирования конечного imi файла.

Итак, заключительный шаг в процессе создания карты - выбираем "Файл" - "Выгрузить на GPS" - "Фоновую карту". Соглашаемся с предупреждением что регион не выбран и карта будет выгружена полностью и в появившемся диалоге выбираем "Сохранить на жестком диске". После завершения процесса готовая карта будет находится в папке \Export\Images\ ММО27.

5. Заключение

Прежде всего хочется выразить глубокую благодарность Михаилу Шаронову - его статьи по данной тематике очень помогли:

Также полезная информация попалась в статье неизвестного автора 

sites.google.com

GpsmapEdit редактор векторных карт

"Создание и редактирование векторных карт 

для навигационно-информационной системы ГИС Русса"

 

 

Лекция №5

 

 

  1. Выбор навигационной программы.
  2. GPSMapEdit - редактор векторных карт.
  3. Обзор программы ГИСРусса.
Эта лекция будет целиком посвящена программному обеспечению. Первая часть рассматривает возможности, реализованные в программах для КПК с приёмниками GPS. В самом начале мы хотели дать просто обзор существующих на рынке навигационных программ для КПК. Рассмотреть их положительные и отрицательные качества. Однако потом, чтобы избежать предвзятости, решили ограничится рассмотрением функций, которые присутствуют в таких программах. К тому же все программы непрерывно развиваются и то, чего не было вчера, вполне может появиться завтра. Последующие две темы позволят нам познакомимся с программами, которые нам предстоит изучить в последующих материалах.

 

^

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

В качестве исходных данных примем, что у нас уже есть КПК с модулем приёма данных системы GPS. Само по себе это не даст нам никакого преимущества. Эта связка начнёт работать только после того, как мы установим программное обеспечение, имеющее возможности выполнять те функции, которые мы хотим получить. Для этого нужно знать на что мы можем рассчитывать. Давайте посмотрим на что нужно обращать внимание, выбирая программу для навигации:

1. ^ Здесь всем понятно, что программа должна соответствовать операционной системе имеющегося КПК. И быть удовлетворительной по цене. Выбор операционных систем не велик и самыми популярными являются Pocket PC с ОС Windows CE и Palm с ОС Palm CE. 

По ценам вариантов больше. Стоимость навигационных программ варьируется от 0$ до 200$. Так же немаловажным является отношение разработчика к модификации программы. Чем чаще выпускаются новые версии программы, тем большей стабильностью и функциями она обладает.

2. ^ Будет обидно, если Ваш приёмник не будет виден из за каких либо ограничений. Например иногда такое происходит по причине ошибок, связанных с эмуляцией COM портов. Сейчас, для коммерческих программ, подобная проблема большая редкость.

3. ^ По сути, без карт подобные программы попросту не нужны. Все современные программы поддерживают загрузку электронных карт. Однако не всё так просто. Во первых карты бывают разные. Есть растровые карты местности и есть векторные.

Растровые карты получают отсканировав и, соответствующим образом, привязав обычные бумажные карты. Плюсом здесь является то, что растровых карт достаточно много. Купив обычную карту местности для интересующего района, всегда можно переработать её для загрузки этих данных в память КПК. Минусом является то, что растровые карты, как и любой растр, плохо масштабируются и сами файлы обладают огромными размерами. Первый недостаток может привести к тому, что приблизив какую либо область карты, нельзя будет ничего по хорошему разглядеть. Например возьмём широко распространённые карты с масштабом 1см=5км. На бумажной основе они выглядят достаточно качественно. Но давайте посчитаем погрешность, заложенную в них. Если в 1см помещается 5км, то значит в 1мм поместится 500м. Ширина линии для обозначения автомобильной трассы на такой карте составляет 0,7-1мм. То есть ширина трассы составит около 500м! Сделав в своём навигаторе масштаб равный 1см=500м, Вы рискуете увидеть нечто невообразимое. Как в таком случае ориентироваться, непонятно.  Напомню, что точность определения координат у приёмников GPS составляет 5-15м. Второй недостаток - большие размеры файла карты, потребует затратить деньги на дополнительную память. Немаловажным аргументом против растровых карт является то, что их очень трудно редактировать. Попробуйте перерисовать на растровом изображении очертание города, излучину реки или новую трассу. Знаки сервиса и названия рек, населённых пунктов и т.п. могут также привести к невозможности ориентации. Например я видел карты, где наименование крупных городов полностью лишало ориентации в окрестностях этого города из за того, что выведенное крупными буквами название, просто перекрывало всё остальное в нужном районе. 

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

4. ^ Лучше, если программа изначально рассчитана на Российского потребителя. Поддержка русского языка гарантирует, что Вы не столкнётесь с необходимостью транслитерации наименований. Например, гораздо комфортнее читать "Каширный мыс", чем какой ни будь "Kashyrnyj mys". Однако нельзя сбрасывать со счетов и возможность изменять язык интерфейса программы - английский, украинский, китайский и т.д. Поэтому желательно поддержка программой формата Unicode, который может отображать любые национальные символы.

5. ^ Здесь всё определяется фантазией разработчика программы. Можно придумать великое множество параметров, которые можно вычислить исходя из полученных о Вашем текущем местонахождении данных. Приведу лишь некоторые из них - текущая, средняя, максимальная скорость, время прибытия в заданную точку, время захода Солнца, расстояние до точки, текущая высота, ускорение и многое другое. И хотя многие из них используются очень редко, но возможно когда-нибудь их отсутствие вполне может обернуться неудобством в Вашем путешествии. 

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

7. ^ Очень важной является возможность программы составлять маршрут и отслеживать его выполнение. Здесь следует разделить два способа составления маршрута. Разберёмся с первым из них. 

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

Автоматическая прокладка маршрутов или "роутинг". Образовано от английского Routing, что означает маршрутизация. Но от предыдущего способа эта функция отличается полной автоматизацией. Выглядит это следующим образом - нам всё ещё надо попасть из точки А в точку Б, но дороги мы совсем не знаем. Вот тут и пригодится роутинг. Он позволяет автоматически проложить маршрут движения, просто указав на конечную точку пути. Причём маршрут автоматически прокладывается с учётом особенности реальной обстановки. Если показан перекрёсток, но на нём висит "кирпич" или дорога односторонняя, то будет рассмотрен ближайший объезд в соответствии с правилами дорожного движения и максимального сокращения пути. Эта функция пока ещё не имеет широкого хождения и встречается достаточно редко. Для её реализации необходимы очень точные карты, содержащие актуальную информацию о дорогах. Как правило, такие карты продаются за отдельную плату. Но со временем эта функция станет достаточно популярной. Возьмём хотя бы Западную Европу, там роутинг уже стал обыденностью.

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

В заключение приведу перечень основных навигационных программ с указанием их стоимости. 

OziExplorer CE (30$+85$ за программу привязки карт),  PocketGPS (120$), PalmGIS (70$), Ариадна (120$), Na Sa (150$), GISRussa (49$).

Нельзя не сказать, что за рубежом существует большое количество подобных программ. Например PocketStreets или TomTom-navigator. Однако их применение в России невозможно, в виду полного отсутствия карт.

 

^

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

Вначале, как всегда, немного истории. Сначала на прилавках магазинов появились одноканальные, а в последствии и 12-канальные навигаторы, позволяющие с точностью до 10-15м определять координаты и. исходя из этого, вычислять остальные данные о движении. Они умели многое и тогда казалось, что прогресс в развитии будет развиваться в сторону увеличения количества путевых точек, объёма треклога, увеличения вычисляемых параметров и т.п. Так оно и было. Однако в скором времени технологический прогресс позволил вместить в столь малое устройство, управление, отвечающее за отображение, помимо обычной символьной информации, ещё и электронных карт. Карты с данными выводились прямо на дисплей навигатора. Это был существенный прорыв в развитии GPS навигации. Сразу за этим встал вопрос - где взять карты. Если для США и многих стран Европы создание подробных карт не заняло много времени, то для России их выпуск вообще не планировался. Да и в настоящее время производители навигаторов, а именно им принадлежат права на форматы электронных карт, не ведут активную работу по сбору данных, нужных для создания карт России. Самыми популярными навигаторами в России являются навигаторы производства компании Garmin. Свой формат карт Garmin держит в секрете. 

Это должно было привести к монополизации в создании и распространении электронных карт для навигаторов этого производителя. Почему должно было? Да потому что нашёлся человек, который каким то образом сумел разобраться с составом тех данных, которые хранились в файлах данных карт. Этим человеком был Stanislaw Kozicki. Вскоре появилась программа, позволяющая компилировать исходные данные в формат карт Garmin. Программа-компилятор называется сGPSMapper.

Вы вероятно знаете, что любая компиляция происходит из каких-то исходных данных. Что же это за исходные данные? Дело в том, что создавать описание карты сразу в конечном формате было невозможно в силу определённых причин. Поэтому Станиславу пришлось разработать особый язык описания объектов на карте. Этот формат носит название "Польский формат". В честь страны, где живёт автор. С помощью этого языка можно задавать полное описания для всех необходимых объектов, присутствующих на карте. О нём мы поговорим в следующей лекции.

Однако вручную описывать каждый объект практически не реально. Например возьмём обозначение объекта в виде прямоугольника. Для его описания на карте необходимо следующее:

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

- описать этот объект, дав ему код типа объекта, имя, слой, описание;

- точно знать и ввести координаты всех его четырёх углов.

После этого в командной строке дать команду на компиляцию карты и, если нигде не обнаружится ошибки, получить файл карты с расширением *.img. Но и  это ещё не всё. Что бы посмотреть результат, надо загрузить эту карту в навигатор и только тогда увидеть правильно ли всё было сделано. Если нет, то процесс повторяется. И всё это ради одного прямоугольника. Представьте ситуацию, когда Вам надо нарисовать карту с 1000 объектов. И это далеко не самое большое количество объектов карты.

Вот почему и появилась программа, которая изначально являлась как бы графической оболочкой для компилятора cGPSMapper. Эта программа называется GPSMapEdit. Разработана она россиянином  Константином Галичским. Она является основным инструментом в процессе создания и редактирования электронных векторных карт в "Польском формате" и преобразовании их в другие форматы. В процессе своего развития постоянно увеличивалось количество выполняемых функций. Сейчас программа умеет самостоятельно преобразовывать код "Польского формата" в несколько форматов векторных карт. Помимо перечисленных выше, возможно преобразование в форматы для навигаторов Holux и AlanMap500. Не так давно появилась поддержка ещё одного формата - RUS, который использует навигационная программа ГИСРусса, речь о которой впереди. 

Следует сказать, что альтернативы GPSMapEdit на рынке программ в настоящее время нет. Были отдельные попытки создать что-то подобное, но распространения они не получили.

Стоимость программы составляет 990 рублей для жителей России, что достаточно немного для программы такого уровня, к тому же при отсутствии достойных конкурентов. Раз уж мы заговорили о стоимости, нельзя не упомянуть про политику автора в отношении незарегистрированной программы. Как ни странно, лицензия на программу не предусматривает Trial период. То есть Вы можете пользоваться программой сколь угодно продолжительное время. Причём программа на 90% сохраняет все, заложенные в неё возможности. Ограничения касаются редких команд работы с картой, импорта и сохранения данных в некоторых форматах. Причём сохранение в формат программы ГИСРусса остаётся полностью работоспособным.

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

Полигоны - это замкнутые площадные объекты, используемые для отображения таких типов объектов, как моря, озёра, леса, болота и пр. 

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

Точки - соответственно точечные объекты для отображения маяков, заправок, бродов, глубин и пр.

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

 

^

Прежде чем начать рассматривать процесс создания карт, хочется рассказать о программе, для которой эти карты будут готовиться. Этой программой является  программа ГИСРусса, которая позиционируется на рынке как "Мобильная навигационно-информационная система для Pocket PC & GPS". 

Почему именно ГИСРусса? - спросите Вы. Попытаюсь объяснить. Программа создаётся с непосредственным участием автора GPSMapEdit. Это означает, что по крайней мере с совместимостью этих двух программ проблем не будет. Кроме того К.Галичский признанный специалист в вопросах геопрограммирования. Первая версия программы появилась 1 июля 2004. Активность развития программы показывает тот факт, что к ноябрю 2004 года выпущено уже 10 обновлений. И все они каждый раз приносили новые возможности для максимально удобной работы с программой. За этот период количество новых, по сравнению с первой версией, функций перевалило за 30. 

Сначала давайте попробуем определиться с соответствием параметров и характеристик программы ГИСРусса с теми, которые были указаны выше. Пойдём прямо по пунктам.

1. ^

Как было видно из ссылок на другие программы, стоимость программы является самой низкой по сравнению с другими конкурентами. Программа рассчитана на КПК на основе PocketPC и любую версию ОС Windows CE.

2. ^

С подключением приёмников GPS к КПК и их успешным распознаванием программой у большинства программ теперь вопросов не возникает. Не стала исключением и ГИСРусса.

3. ^

А вот здесь программа даст фору любой другой. Мало того, что она использует самый компактный, по сравнению с другими, формат для хранения векторных карт, так для неё уже сейчас можно скачать готовые карты всей территории России. Причём эти карты можно свободно редактировать и дополнять с помощью всё того же GPSMapEdit. Готовые карты абсолютно бесплатны и каждый желающий может скачать нужный район посетив эту страничку. Такой возможности в настоящее время нет ни у одного конкурента. Как и программы, позволяющей каждому редактировать эти данные.

^

Программа, созданная в России, по определению не имеет проблем с русским интерфейсом. Кроме этого можно легко изменять язык интерфейса простой сменой файла языкового модуля. Языковой модуль - это файл с расширением "*.rrl". Имеется поддержка Unicode.

^

Помимо ставших привычными показателей, у программы ГИСРусса на данный момент есть такие интересные параметры как:

- Глубина (данные от эхолота, поддерживающего протокол NMEA-0183)

- Температура (данные от эхолота, поддерживающего протокол NMEA-0183)

- Площадь (площадь фигуры ограниченной траекторией движения и отрезком от текущей до исходной точки)

- Аэродинамическое качество (отношение вертикальной скорости к горизонтальной)

- Наклон (наклон траектории)

- Минимальная высота (минимальная высота измеренная с момента сброса значения)

- Пеленг точки (Азимут следующей путевой точки относительно текущего положения).

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

^

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

^

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

Кроме всего вышесказанного следует отметить, что изо всех перечисленных навигационных программ, только ГИСРусса и OziExplorer не привязаны к какому либо географическому положению. Остальные рассчитаны только на предлагаемые разработчиком карты с очень ограниченным охватом. Как правило это Москва, Санкт-Петербург и немного других городов и областей. В свою очередь OziExplorer не работает с векторными картами. Как мы уже выяснили, растровые карты - не самый лучший вариант, ввиду большого размера файлов карт. Кроме этого, с применением растровых карт становится невозможным применение автоматической прокладки маршрута - роутинга.

Есть ещё одна причина. Я думаю, что с течением времени всё больше внимания будет уделяться легальности использования того или иного продукта или данных. Это в настоящее время довольно отчётливо проявляется в ситуации с пиратскими компакт дисками с играми и музыкой. Постепенно их становится всё меньше и меньше. В этом плане существенным отличием ГИС Русса является то, что у разработчиков этого продукта есть ВСЕ необходимые документы, разрешения и лицензии. У всех остальных отечественных разработчиков подобных программ их просто нет. Ни у одного! Поэтому стоит случиться любой проверке ответственных органов и данная программа просто исчезнет с рынка. А как же деньги, отданные за неё? Как поддержка и дальнейшее развитие? В общем ситуация напоминает лотерею. Может кому и интересно рисковать, но мне, например, нравится когда я отдал деньги и получил то, на что рассчитывал у продавца, который не исчезнет через день.  

Из всего вышесказанного можно сделать вывод, что навигационная программа ГИСРусса, при самой низкой стоимости, удовлетворяет всем условиям в плане функциональности. Решающим фактором можно считать наличие готовых пятикилометровых карт всей территории России и полноценного инструмента для самостоятельного редактирования существующих и создания собственных карт. В данное время такой набор не предложил ни один разработчик подобного ПО.

На этом основании все дальнейшие описания работы по созданию векторных карт будут ориентированы именно навигационную программу ГИС Русса.

_______________

 

Свои вопросы по пройденному материалу Вы можете задавать на нашем форуме.

 

Перейти к лекции N6.

do.gendocs.ru


Смотрите также