Понятие слоёв детализации карты
Вид материала | Лекция |
- Лекция 10: Топография и ориентирование Понятие карты, бланковка, масштаб, виды карт,, 197.78kb.
- Ерации с использованием Банковской карты и порождающее его обязательство по исполнению, 393.67kb.
- Правила использования международных банковских карт ООО кб «ноябрьскнефтекомбанк» общие, 161.37kb.
- Правила пользования международной банковской картой, 1032.07kb.
- Условия и правила предоставления банковских услуг по направлению кредитные карты. Термины, 420.01kb.
- Программа вступительных испытаний для абитуриента академии вэгу по предмету «география», 111.29kb.
- Ульрих Бек по ту сторону классов и слоев, 372.71kb.
- Номенклатура и разграфка топографических карт, 91.7kb.
- Уважаемый держатель банковской карты ОАО «Банк «Екатеринбург»!, 30.85kb.
- Священник Анатолий Гармаев Обрести себя От издательства Эта книга, 2506.58kb.
"Создание и редактирование векторных карт
для навигационно-информационной системы ГИС Русса"
Лекция №7
- Понятие слоёв детализации карты.
- Настройка свойств карты.
Эта лекция будет посвящена очень важным настройкам, без знания которых практически невозможно работать с картами в программе 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, которые мы только что рассмотрели.
На этом настройка нашей будущей карты заканчивается. Рекомендую ещё раз пробежаться по основным настройкам и попытаться чётко представить себе назначение каждого из них.
_______________
Свои вопросы по пройденному материалу Вы можете задавать ссылка скрыта.
Перейти к ссылка скрыта.