Как сделать компоновку карты
Как создать шаблон функции?
Как мне импортировать компоновку в ArcMap?
Как сохранить шаблон в Arcpro?
Как изменить шаблон компоновки в ArcGIS?
Чтобы изменить существующий шаблон, перейдите на Файл> Открыть, измените Тип файлов на Шаблоны ArcMap (*. mxt), и выберите файл шаблона. Затем вы можете внести необходимые изменения прямо в шаблон.
Какие особенности шаблонов?
Шаблоны объектов определяют информацию, используемую для создания объекта, включая инструмент построения по умолчанию, выбранные атрибуты и правила хранения. Шаблоны содержат пользовательское имя, описание и полезные теги. После создания шаблоны сохраняются в документе ArcMap и в файле слоя элемента.
Что из следующего верно о шаблонах функций?
Как создать линейный объект в ArcGIS?
1. Выберите слой Line в диалоговом окне Create Features 2. Выберите Инструменты для строительства линий 3. Щелкните один раз, чтобы начать линию; щелкните один раз, чтобы добавить каждую вершину; дважды щелкните, чтобы закончить линию, или щелкните правой кнопкой мыши, чтобы завершить эскиз.
Как импортировать данные в ArcGIS?
Как создать компоновку карты в ArcGIS?
Как использовать вид компоновки в ArcGIS?
Часто бывает нужно создать карту, которая подходит для печати или публикации. У QGIS есть мощный инструмент под названием Print Composer , который позволяет вам брать ваши слои ГИС и упаковывать их для создания карты.
Обзор задачи¶
Этот урок показывает, как создать карту Японии со стандартными элементами карты, такими как карта-врезка, сетка, указатель севера, масштабная линейка и подписи.
Вы научитесь также¶
Получение данных¶
Мы будем использовать набор данных Natural Earth, а именно, Natural Earth Quick Start Kit, который поставляется с красиво оформленными глобальными слоями, которые могут быть загружены непосредственно в QGIS.
Методика¶
Загрузите и извлеките данные Natural Earth Quick Start Kit. Откройте QGIS. Нажмите на File ‣ Open Project .
Перейдите к директории, в которую вы извлекли данные Natural Earth. Вы должны увидеть файл с именем Natural_Earth_quick_start_for_QGIS.qgs . Это файл проекта, который содержит оформленные слои в формате документов QGIS. Нажмите Open .
You would see a lot of layers in the table of content and a styled World map in the QGIS canvas. If you see errors displayed at the top of the canvas, click on the cross to close it.
В этом руководстве мы оформим карту Японии. Нажмите на кнопку Zoom In и нарисуйте прямоугольник для масштабирования этой области.
Для Японии создана координатная система под названием Japan Plane Rectangular CS ( часть системы CRS - coordinate reference system) которая даёт минимум искажений. Она разделена на 18 зон и её использование будет предпочтительнее если вы работаете с крупномасштабными картами.
Активируйте оцию Включить автоматическое перероецирование координат . Введите в строке поиска Tokyo utm zone 54n . Когда появятся результаты, выберите Tokyo / UTM Zone 54N - EPSG:3095 . Нажмите Применить .
Теперь мы можем начать компоновать нашу карту. Перейдите по пути Проекты ‣ Создать макет .
Вам будет предложено ввести имя макета. Можно оставить поле пустым для автоматической генерации имени. Нажмите Ok .
Если поле осталось пустым то макету будет назван Макет 1
In the Print Composer window, click on Zoom full to display the full extent of the Layout. Now we would have to bring the map view that we see in the QGIS Canvas to the composer. Go to Layout ‣ Add Map .
Once the Add Map button is active, hold the left mouse button and drag a rectangle where you want to insert the map.
You will see that the rectangle window will be rendered with the map from the main QGIS canvas. The rendered map may not be covering the full extent of our interest area. Select Layout ‣ Move item content to pan the map in the window and center it in the composer.
Let us adjust the zoom level for the given map. Click on the Item Properties tab and enter 7000000 for Scale value.
Now we will add a map inset that shows a zoomed in view for the Tokyo area. Before we make any changes to the layers in the main QGIS window, check the Lock layers for map item and Lock layer styles for map item boxes. This will ensure that if we turn off some layers or change their styles, this view will not change.
Switch to the main QGIS window. Use the Zoom In button to zoom to the area around Tokyo.
There are some duplicate labels coming from the ne_10m_populated_places layer. You can turn it off for this view.
We are now ready to add the map inset. Switch the the Print Composer window. Go to Layout ‣ Add Map .
Drag a rectangle at the place where you want to add the map inset. You will now notice that we have 2 map objects in the Print Composer. When making changes, make sure you have the correct map selected. Select the Map 1 object that we just added from the Items panel. Select the Item properties tab. Scroll down to the Frame panel and check the box next to it. You can change the color and thickness of the frame border so it is easy to distinguish against the map background.
One neat feature of the Print Composer is that it can automatically highlight the area from the main map which is represented in our inset. Select the Map 0 object from the Items panel. In the Item properties tab, scroll down to the Overviews section. Click the Add a new overview button.
Select Map 1 as the Map Frame . What this is telling the Print Composer is that it must highlight our current object Map 0 with the extent of the map shown in the Map 1 object.
Now that we have the map inset ready, we will add a grid and zebra border to the main map. Select the Map 0 object from the Items panel. In the Item properties tab, scroll down to the Grids section. Click the Add a new grid button.
By default, the grid lines use the same units and projections as the currently selected map projections. However, it is more common and useful to display grid lines in degrees. We can select a different CRS for the grid. Click on the change… button next to CRS .
In the Coordinate Reference System Selector dialog, enter 4326 in the Filter box. From the results, select the WGS84 EPSG:4326 as the CRS. Click OK .
Select the Interval values as 5 degrees in both X and Y direction. You can adjust the Offset to change where the grid lines appear.
Scroll down to the Grid frame section and select a frame style that suits your taste. Also check the Draw coordinates box.
Adjust the Distance to map frame till the coordinates are legible. Change the Coordinate precision to 1 so the coordinates are displayed only upto the first decimal.
Now we will add a North Arrow to the map. The Print Composer comes with a nice collection of map-related images - including many types of North Arrows. Click Layout ‣ Add Image .
Holding your left mouse button, draw a rectangle on the top-right corner of the map canvas. On the right-hand panel, click on the Item Properties tab and expand the Search directories section and select the North Arrow image of your liking.
Now we will add a scale bar. Click on Layout ‣ Add Scalebar .
Click on the layout where you want the scalebar to appear. In the Item Properties tab, make sure you have chosen the correct map element for which to display the scalebar. Choose the Style that fit your requirement. In the Segments panel, you can adjust the number of segments and their size.
It is time to label our map. Click on Layout ‣ Add Label .
Click on the map and draw a box where the label should be. In the Item Properties tab, expand the Label section and enter the text as shown below. We can enter the text as HTML as well. Check the box Render as Html so the composer will interpret the HTML tags.
Similarly add another label to add the data and software credits.
Once you are satisfied with the map, you can export it as Image, PDF or SVG. For this tutorial, let’s export it as an image. Click Composer ‣ Export as Image .
Save the image in the format of your liking. Below is the exported PNG image.
© Copyright 2021, Ujaval Gandhi.
Обновлено: янв. 15, 2022.
Created using Sphinx 4.0.1.
Цель задания --- знакомство с моделями пространственных объектов и базой пространственных данных. Визуализация данных на карте. Оформление легенды и компоновки карты.
- Добавить на карту слои базы пространственных данных и оформить их
- Настроить подписи объектов
- Создать компоновку карты, легенду и координатную сетку
- Экспортировать результат в графический файл
Задание посвящено знакомству с ГИС на примере создания социально-экономической карты. Вы познакомитесь с представлением площадных, линейных, точечных объектов в базе пространственных данных. Научитесь создавать карты на их основе, оформлять легенду, добавлять сетку координат и зарамочные элементы карты, познакомитесь с применением картограмм и картодиаграмм в геоинформационном картографировании.
Скачайте с сервера каталог Ex04 и положите его в свою директорию.
Запустите приложение ArcMap и откройте окно Сatalog, нажав кнопку на панели инструментов.
Подключитесь к рабочему каталогу Ex04 в окне Сatalog (Рис. @ref(fig:mde-cat)):
В каталоге Ex04 находится база геоданных MapData.gdb, содержащая исходные данные для выполнения задания.
База геоданных — это структурированное хранилище, внутри которого можно создавать слои данных, группировать их и связывать различными отношениями.
Внутри базы геоданных могут быть объекты следующих типов:
Класс пространственных объектов (feature class) --- это набор пространственных объектов одного типа геометрии (точки, линии, полигоны). Для класса могут быть определены атрибуты, а его представлением является таблица, содержащая столбцы разного типа (текстовые, числовые и т.д.). Каждая строчка в таблице — это описание одного объекта.
Раскройте базу данных MapData.gdb и изучите классы пространственных объектов внутри нее:
Класс Содержание
Borders Государственная граница РФ Cities Города Lakes Озера Regions Субъекты федерации Countries Страны
К какому типу геометрии относятся данные классы?
Дважды щелкните на слое Regions и перейдите на вкладку XY Coordinate System.
Внимательно прочитайте информацию. Этот слой хранится в Географической системе координат (GCS), отнесенной к эллипсоиду WGS-1984. Это означает, что координаты каждого объекта хранятся в виде широты и долготы. Этот слой можно спроецировать в любую проекцию. При этом координаты будут представлены в метрических единицах, а система координат получит название Проецированной системы координат (PCS).
Добавьте на карту слой Regions. Для этого просто перетащите его из окна Каталога на карту.
Используя инструкции в разделе Изменение проекции, измените проекцию карты на равновеликую коническую проекцию Альберса. Ее можно найти по следующему пути:
Projected Coordinate Systems > Continental > Asia > Asia North Albers Equal Area Conic
Обратите внимание на то, как изменится форма отображаемых объектов.
Откройте таблицу атрибутов слоя. Найдите в ней столбец Density, просмотрите его значения. Это поле таблицы хранит значения плотности населения по субъектам.
Найдите поля Shape и ObjectID.
В поле ObjectID хранится уникальный идентификатор каждого объекта. Он нужен системе для того, чтобы каждый объект можно было гарантированно найти по некому однозначному критерию.
В поле Shape хранится геометрия объектов. Если слой точечный — это будут просто пары координат X и Y для каждого объекта. Для линейных и полигональных слоев это будет уже упорядоченный набор пар координат вершин границы объекта. Геометрия редактируется специальными инструментами, поэтому содержимое поля Shape скрыто от пользователя.
Дважды щелкните на названии слоя и на вкладке Symbology и выберите способ изображения Quantity — Graduated colors (Градуированные цвета).
Выберите в списке Value Field поле Density, система автоматически сформирует список классов, созданных методом естественных интервалов.
Существует множество методов классификаций: равных интервалов, квантилей, стандартных отклонений и т.д. По умолчанию всегда выбирается метод естественных интервалов, т.к. считается, что он в среднем неплохо отражает особенности распределения. Следует знать, однако, что этот метод классификации плохо справляется с распределениями, обладающими значительной асимметрией и эксцессом (heavy-tail distribution).
Измените число классов на 7 (Рис. @ref(fig:mde-cla)):
Измените метод классификации. Для этого нажмите Classify. В появившемся диалоговом окне выберите в списке сверху ручной метод задания интервалов (Manual) и в правом столбце замените первые шесть значений на следующие: 1, 10, 25, 50, 100, 250. Максимальное значение оставьте без изменений. Жмите ОК (Рис. @ref(fig:mde-cle)):
На вкладке Symbology выберите цветовую шкалу Yellow To Dark Red (Рис. @ref(fig:mde-ramp)):
Инвертируйте сортировку классов, чтобы наверху оказались максимальные градации (Рис. @ref(fig:mde-clssort)):
Инвертируйте цветовую шкалу, чтобы цвета соответствовали градациям (Рис. @ref(fig:mde-colsort)):
В основном диалоге настройки символов исправьте подписи классов (столбец Label) в соответствии с нижеприведенным фрагментом (Рис. @ref(fig:mde-labedit)):
Нажмите ОК.
Результат (Рис. @ref(fig:mde-choropleth)):
Снимок экрана №1. Картограммы плотности населения
Сохраните документ карты через команду меню File > Save as в свой каталог Ex04 под названием Ex04_ .mxd.
Файл с расширением .mxd является файлом документа карты ArcMap. Он содержит перечень слоев и их настроек, созданные компоновки и ряд дополнительных параметров. Документ карты, как и входящие в него слои, не хранит сами данные, а лишь ссылается на них. Поэтому, перемещая проект на другой компьютер, вы должны также переместить и данные, чтобы он открылся (в вашем случае — базу геоданных, из которой вы добавляли классы объектов на карту).
Разместите новый слой поверх слоя плотности населения.
Измените его способ изображения на Картодиаграммы (Quantities > Graduated Symbols) (Градуированные символы).
Выберите для отображения поле SUM_Все_население. Появится шкала классификации показателя.
Измените цвет кружка на голубой. Для этого нажмите кнопку Template, выберите значок Circle 2 с тонкой обводкой и смените цвет заливки (Рис. @ref(fig:mde-popsym)):
Установите число классов равным 6 (Рис. @ref(fig:mde-popncla)):
Аналогично предыдущему слою выберите ручной метод классификации и введите следующие границы классов: $500, 1000, 2500, 5000, 10000$. Максимальную границу оставьте прежней (Рис. @ref(fig:mde-popbrcla)):
Нажмите ОК.
Инвертируйте порядок классов и порядок символов в классификации (аналогично предыдущему слою) так чтобы наверху оказались максимальные значения.
Установите на вкладке Symbology максимальный и минимальный размер значка равным 18 и 4 пункта соответственно (Рис. @ref(fig:mde-popsize)):
Отредактируйте подписи классов по аналогии с картограммами (Рис. @ref(fig:mde-poplabcla)):
Задайте символ фона картодиаграмм в виде полигона с пустой заливкой и пустой обводкой. Для этого щелкните на кнопке Background и выберите режим No Color для заливки и для обводки (Рис. @ref(fig:mde-popnocolor)):
Нажмите ОК.
Результат (Рис. @ref(fig:mde-popdiag)):
Снимок экрана №2. Картодиаграммы численности населения
Сохраните документ карты
Оформление географической основы
Добавьте на карту слои Borders, Cities, Countries и Lakes. Установите следующий порядок слоев в таблице содержания:
a. Cities b. Borders c. Lakes d. Численность населения e. Плотность населения f. Countries
Переименуйте вновь добавленные слои следующим образом:
Исходное название Результирующее название
Cities Города Borders Граница РФ Lakes Озера Countries Страны
Присвойте слою Граница РФ единый символ Boundary, National.
Присвойте слою Озера единый символ Lake.
Измените цвет точек слоя Города на белый.
Установите следующие параметры оформления для площадного слоя Страны:
Параметр Значение
Цвет заливки Серый 10% Цвет обводки Серый 50% Толщина обводки 1
Результат (Рис. @ref(fig:mde-popback)):
Снимок экрана №3. Карта с элементами общегеографической основы
Сохраните документ карты.
Включите механизм размещения подписей Maplex (Рис. @ref(fig:mde-maplex)):
Включите подписи для слоя Города на вкладке Labels. Выберите в качестве поля для подписей name_2. Остальные настройки оставьте по умолчанию (Рис. @ref(fig:mde-labels)):
Включите подписи для слоя Страны. Настройте подписи следующим образом:
Параметр Значение
Поле (label field) Название Тип размещения Криволинейное (Curved) Разрядка слов Да Разрядка букв Да Подписывать только наибольшую часть Да
Результат (Рис. @ref(fig:mde-wlabels)):
Снимок экрана №4. Карта с подписями объектов
Сохраните документ карты.
Переключитесь в вид компоновки через команду меню View > Layout View
Настройте макет страницы следующим образом:
Установите масштаб карты равным $1:35 000 000$. Подгоните размер фрейма данных таким образом, чтобы он был слегка больше контура России. Для этого используйте стрелку на панели Tools. Разместите его в правом верхнем углу карты.
Отцентрируйте контур России внутри фрейма (рамки). Для этого используйте лапу на панели Tools.
Смените цвет фрейма данных (фона) на светло-голубой.
Результат (Рис. @ref(fig:mde-frcolor)):
Добавьте на карту легенду, включив в нее только слои Численность населения и Плотность населения. Нажмите Далее (Рис. @ref(fig:mde-leglyrs)).
В следующем диалоге название легенды оставьте пустым (Рис. @ref(fig:mde-legtitle)):
Далее все параметры оставьте по умолчанию.
Добавьте сетку координат со следующими параметрами:
Параметр Значение
Тип сетки градусная Шаг по широте 10 Шаг по долготе 10
Разместите над картой текст заголовка карты, используя панель Drawing или меню Insert (Рис. @ref(fig:mde-text)):
Разместите под картой по центру численный масштаб $1:30 000 000$.
Результат (Рис. @ref(fig:mde-res)):
Снимок экрана №5. Итоговая карта
Сохраните документ карты.
Экспорт в графический файл
Экспортируйте карту из режима компоновки (File > Export Map. ) в формат PNG с разрешением 300 точек на дюйм. Сохраните его в свою директорию.
Вставьте карту в отчетный файл
Какие типы геометрии допустимы для слоев в базе геоданных? К каким типа относятся слои, использованные вами в работе?
В какой системе координат хранились данные, которые вы использовали для составления карты?
Какая проекция была использована вами в работе? К какому типу по характеру искажений она относится?
Где хранятся числовые данные, которые используются для построения картограмм и картодиаграмм?
Две недели назад имел сомнительное удовольствие рисовать карту для ММБ 2017/осень. Решил написать эту статью поскольку процесс по-прежнему далёк от дружественности пользователю.
Общий план
Сейчас за основу принято брать готовый вектор из OSM. Способов скачивания куска карты описано в их вики довольно много. Карта получена, теперь надо:
- Нарисовать свои детали
- Добавить данные SRTM 1
- Создать стиль отрисовки элементов карты на приборе Garmin (лес будет отображаться ёлочками, поле травинками т.д.)
- Скомпоновать карту
- Залить на прибор
Рисование
Тут всё просто: выбираем любой понравившийся редактор OSM и рисуем. Я остановился на josm. Важно выбрать какую-нибудь хорошую подложку. К сожалению, Yandex.Карты или Google Maps использовать нельзя из-за лицензионных ограничений. Но есть много неплохих альтернатив, доступных прямо в josm.
В OSM все объекты имеют набор атрибутов вида ключ=значение . Таких атрибутов у объекта может быть от нуля до бесконечности. По ним дальнейшие утилиты поймут что вы имели ввиду, нарисовав вон тот большой многоугольник. По большому счёту, их можно выставлять любыми, однако рекомендую использовать стандартные. Это спасёт вас от наступления на давно известные грабли, а также позволит в дальнейшем экспортировать ваши изменения обратно в OSM.
Добавление данных высот
Проще всего воспользоваться Windows утилитой Srtm2osm. Она возьмёт заданную URL’ом область из OSM, скачает для неё данные SRTM, сама преобразует их в формат OSM.
Выглядит это примерно так:
- URL скопирован из браузера и показывает кусок, для которого хотелось бы получить линии высот
- -cat 600 200 шаг в метрах высоты для мажорных и средних линий высот
- -step 40 шаг в метрах высоты для минорных линий высот.
На выходе у нас получится файл srtm.osm .
Стили карты
Новая для меня тема и одновременно большое приятное открытие: стили по умолчанию у моего Garmin ужасны! Нормальный стиль радикально улучшает читаемость карты. И я бы сказал, что на последнем ММБ мой стиль дал больше, чем весь вклад непосредственно в картографирование района.
Проблема в том что не может быть стиля, который универсально подойдет для всех целей. Автомобилисту на трассе просеки на фиг не нужны, а у ММБшника в них смысл жизни. Но вы только посмотрите, насколько прекрасно может выглядеть карта, в которой попытались нарисовать универсальный стиль:
Как это работает
С одного конца у нас OSM-карта, где у всех объектов есть атрибуты, я писал о них выше. С другого конца имеем будущую карту для Garmin в формате IMG, где есть свои ID типов объектов. Причем, если идентификаторы типов линий и полигонов на некоторых приборах можно задавать свои, то для точек ID должны быть как завещал Garmin 2 . Их примерный список.
- Сопоставить по каким-то правилам атрибуты объектов в OSM с ID типов в Garmin
- Нарисовать для них картинки.
Рисование картинок
Начну во второго пункта программы т.к. без него невозможен первый. Формат хранения XPM (тут все фотошоперы поперхнулись смузи, а программисты на ANSI C ехидно потёрли руки). Я рисовал их в Gimp. После сохранения важно убедиться, что количество цветов и т.д. в получившемся XPM получилось сколько надо, поскольку Gimp, похоже, иногда в этом месте умничает.
Кратко о заголовке XPM. Он имеет следующий вид:
- Xpm="32 8 4 1" битмап шириной 32 пикселя, высотой 8, 4 цвета, каждый цвет представлен одним символом.
- Xpm="16 16 1 1" одноцветный битмап 16x16, цвет закодирован одним символом.
- Xpm="0 0 24 1" более интересный вариант. Картинка нулевого размера из 24 цветов, каждый закодирован одним символом.
- Xpm="1 1 255 2" картинка размером в один пиксель, который закодирован двумя символами
- Xpm="0 0 1 0" картинка без картинки нулевого размера, каждый цвет закодирован нулевым количеством символов, есть один цвет
Техническая спецификация расширения над XPM от Garmin захватывает дух даже у бывалого программиста:
- Одноцветные полигоны (заливка) задаются XPM, в котором отсутствует битмап. Уточнения:
- всегда равен нулю
- = 1: задает цвет полигона
- = 2: задает дневной и ночной цвет полигона
- иное количество цветов запрещено
- Полигоны с битмапом задаются с равным единице. Уточнения:
- всегда равен единице
- Ширина и высота битмапов любых полигонов должна быть 32 пикселя
- = 2: битмап с двумя цветами, один из цветов может быть прозрачным
- = 4: битмап с двумя цветами, варианты цветов для дневного и ночного режимов.
- иное количество цветов запрещено
Линии без битмапа задаются равным нулю. Дополнительно Garmin ввела константы LineWidth=X и BorderWidth=Y , которые задаются в файле спецификации стиля карты перед XPM. Например:
Уточнения по линиям без битмапа:
- всегда равен нулю
- LineWidth и BorderWidth принимают значения от 0 до 32
- всегда равен нулю
- = 1: единственный цвет задает цвет линии
- = 2: дневной и ночной цвет линии
- = 4: дневной цвет линии, дневной цвет обводки линии и плюс ночные варианты
- иное количество цветов запрещено
Линии с битмапом. Задают картинку линии. Ограничения и формат:
- всегда равен единице
- всегда 32
- = 1: единственный цвет — это цвет линии
- = 2: дневной и ночной цвет линии
- = 4: дневной цвет линии, дневной цвет обводки линии и плюс ночные варианты
- иное количество цветов запрещено
- один из цветов может быть прозрачным
- по аналогии с LineWidth=X , неофициально существуют расширенные булевы параметры за пределами XPM: UseOrientation=Y и Antialias=Y . Оба созданы для попытки отобразить рисунок линии под разными углами более качественно. Но, говорят, не всегда это удается.
Из личных наблюдений: линии с битмапами где меньше 4 смотрятся отвратительно.
Документация на формат XPM для POI (иконок) сюда не поместится, предлагаю ознакомиться самостоятельно.
Сопоставление атрибутов OSM идентификаторам в Garmin
Под Windows вы можете воспользоваться готовым софтом для рисования стилей карт для Garmin 3 . Но он мне показался мягко говоря убогим — начиная с того, что они предлагают все картинки рисовать в своём встроенном редакторе.
Сначала нам надо сопоставить атрибуты OSM конечным идентификаторам в Garmin. Для этого нужна директория (назовите её как вам удобно) с примерно таким содержимым:
(есть и другие файлы, но меня он не коснулись)
На самом деле, выбор стиля для объекта — большая и очень больная тема в картографии; не стоит рисовать реки поверх дорог, дороги поверх туннелей, ручьи в мелком масштабе (но на самом деле надо, если у нас гидрография) и т.д. Но для нашего маленького заводика по утилизации промышленных отходов производству карт для outdoor все эти детали перфекциониста можно опустить.
Специально для перфекционистов оставлю боль и ссылку на мануал. Для остальных достаточно понять, что есть ключ=значение объектов OSM, есть булева логика и есть Garmin ID, который совпадающим в заданным правилом объектам надо присвоить.
Тут важно понять, что на этом этапе вы выбираем, какие элементы исходной карты мы хотим видеть на своей конечной карте. Своеобразный grep+map+fold.
Сопоставление Garmin ID конкретной картинке (TYP файл)
Недавно мы нарисовали кучу офигенных картинок чумовом формате XPM. И мы не можем дождаться момента, когда эти маленькие Моны и Лизы размером 32 на 32, сохранённые в виде Цэ исходников, появятся на экране Garmin. Необходимо сопоставить ID типов Garmin с картинками. Открываем текстовый редактор и создаем файл style.txt :
В секции [_id] указываем кодировку и идентификатор стиля. Регистр ключевых слов важен во всём файле!
В секции [_drawOrder] . Описываем все использованные Garmin ID полигонов и их приоритет при отрисовке. Чем больше число, тем выше приоритет.
Далее идет серия секций с именами [_polygon] , [_line] и [_point] , где мы описываем всё, над чем так долго работали в этих наших фотошопах:
- Type : Garmin ID
- String1 : код языка (для русского 0x19) и название типа, например “просека”. Обратите внимание, что у нас CodePage=1251, кодировка файла должна соответствовать!
- Xpm : наша картинка без Цэ-заголовка.
Ура, стиль готов! Этот txt файл будет скопилирован в TYP файл, который понимает Garmin, который в свою очередь будет вкомпилирован в конечную карту. В разделе Компоновка карт в итоговый файл вы узнаете, как эту шаткую конструкцию преобразовать в карту, а в нижеследующем разделе узнаете, как я попытался от этого ада избавиться с помощью Emacs и чуть-чуть Perl.
Наводим порядок в стилях с помощью Emacs
Figure 2: Результат моих художеств: стиль для рогейнов
В Емаксе есть такой замечательный режим — org-mode. Вероятно первоначально он создавался для организации закладок и записок, но сейчас в нём создают блоги (и я тоже), составляют списки дел, учитывают табельное время, пишут документацию, статьи и книги, применяют в качестве альтернативы MS Excel. Короче говоря, всё что можно структурировать можно запихнуть и в документ org-mode. При этом, org-документ остается простым текстовым файлом, который легко парсить и редактировать чем угодно. Кроме того, Emacs сам по себе умеет показывать картинки прямо в тексте.
Я не смог не воспользоваться такой замечательной возможностью и решил составлять свой первый стиль в формате org. Как это выглядит, можете посмотреть на примере моего стиля для рогейнов (картинки лежат рядом). В Emacs это выглядит довольно прилично:
Figure 3: Внешний вид получившегося документа
Для генерации конечных файлов написал Perl-скрипт. К сожалению, до следующего рисования карт нет никакой мотивации выводить его из глубокой бета-версии. Тем не менее, он работает, генерит директорию с polygons, lines, points, mkgmap-config.txt и style.txt, указывает на какой-то небольшой набор ошибок.
Что делать с получившимся выхлопом скрипта читайте в следующем разделе.
Полезные ссылки по главе (больше мне для изучения)
Компоновка карт в итоговый файл
Для этого нам понадобится mkgmap — утилита, умеющая на самом деле довольно много интересных штук, но главное способная преобразовать OSM в Garmin IMG.
Компиляция стиля отрисовки карты (опционально)
Можно скомпилировать style.txt в TYP-файл. Делается это простой командой:
Этот шаг как правило не имеет смысла, поскольку если подсунуть style.txt в аргументы mkgmap при генерации карты (в wiki говорят, что это должен быть самый последний аргумент!), то TYP-файл будет создан автоматически.
Упаковка mkgmap-фильтров стиля
Стиль необходимо упаковать в zip-архив с такой структурой:
Обязателен только version, и он обязательно должен иметь содержимое “1” с переводом строки.
Компоновка карты
Мой конфиг для mkgmap выглядит примерно так (пусть имя файла будет mkgmap-args.txt):
Перехожу в каталог с OSM файлами и запускаю:
Аргумент -n задает “имя” карты (на самом деле уникальный идентификатор). Если используется splitter (см. ниже), то этот номер будет проставлен автоматически, на основе базового.
В --description рекомендую дать своё описание карты — оно будет показано в меню выбора карты на приборе.
На выходе получится несколько IMG файлов и нужный нам gmapsupp.img (убедитесь, что соответствующая опция включена в конфиге). Этот файл как есть закидываем в директорию Garmin на устройстве. На современных приборчиках файл можно как-нибудь по-своему назвать.
splitter
Для старых приборов также имеет смысл поделить картинку на логические квадраты, работать карта будет быстрее. Это можно сделать с помощью утилиты splitter. Использовать её примерно так:
- --num-tiles=25 разбить карту на 25 кусочков. Чем меньше кусочек, тем проще с ним дружить приборчику, но тем чаще придется подгружать другие кусочки при скроллинге карты.
- --mapid=12340000 кусочки будут иметь ID 12340000, 12340001 и т.д. Важно! У каждой карты на приборе должен быть свой уникальный идентификатор. Как этого достичь — задача для вашей фантазии.
- --keep-complete=false . Если линия или полигон выходит за пределы тайла, то обрезать её. Это может создать проблемы с построением маршрутов и отрисовкой, зато очень большие объекты не добавят тормозов.
Splitter создает файлы с расширением PBF, которые mkgmap тоже умеет принимать в на вход. Пример:
Прочие заметки
Скачивание OSM-данных
5а. Понятие о геоиде; краткая характеристика геоида. Математико-геодезическая основа географических карт предусматривает установление строгой функциональной зависимости перехода от реальной, фактической поверхности нашей планеты к ее изображению на карте. Такое построение состоит в нескольких взаимосвязанных этапах. Вначале земная поверхность, отличающаяся сложным рельефом, с расположенными на ней объектами проектируется на математическую поверхность Земли, за которую принимают средний уровень поверхности Мирового океана, мысленно продолженный под материками. Проектирование выполняется ортогонально, по отвесным линиям, перпендикулярным математической поверхности Земли, в результате чего земные объекты передаются в своих плановых очертаниях. В каждой точке этой поверхности сила тяжести направлена по нормали к ней. Фигуру ограниченную подобной уровенной поверхностью называют геоидом. Геоид вследствие неравномерного распределения масс внутри Земли имеет обширные, хотя и довольно пологие, выпуклости и вогнутости; форма геоида неправильная и описать ее математически невозможно. Кроме того геоид постоянно меняет свою форму под влиянием эндогенных процессов и падения крупных метеоритных тел.
5б. Понятие об эллипсоиде вращения и референц-эллипсоидах; использование шара для описания формы Земли. При картографировании сложную фигуру геоида заменяют математически более простой – эллипсоидом вращения – геометрическим телом, которое образуется при вращении эллипса вокруг его малой оси. Эту форму Земля приняла, если бы находилась только под влиянием центробежной силы вращения вокруг полярной оси. Эллипсоид вращения характеризуют две группы параметров – параметры размеров и параметры положения. Первая группа включает в себя три характеристики: большая экваториальная полуось (a), малая полярная полуось (b) и полярное сжатие (α).
Исторически сложилось так, что в разные времена и в разных странах были приняты и законодательно закреплены различные эллипсоиды, параметры которых не совпадают между собой. В бывшем СССР и России принят эллипсоид Ф.Н. Красовского, вычисленный в 1940 г. Вычисление и уточнение размеров земного эллипсоида продолжаются по сей день. В настоящее время параметры современной точности имеют несколько эллипсоидов. Карты, составленные на основе разных эллипсоидов, получаются в несколько различающихся координатных системах. Однако эти несовпадения заметны главным образом на крупномасштабных топокартах при определении по ним точных координат объектов. На широко используемых географами средне- и мелкомасштабных картах такие различия не очень чувствительны.
Решение задач на эллипсоиде требует использования довольно громоздких формул. Поэтому при мелкомасштабном картографировании (мельче 1 : 10 000 000) эллипсоид или его часть заменяют шаром; погрешности в этом случае столь малы, что практически никак не проявляются. При замене эллипсоида шаром в качестве среднего радиуса Земли R принимают величину 6 371 110 м. Шар такого радиуса по размерам, площади поверхности и объему очень близок к земному эллипсоиду.
5в. Системы координат на эллипсоиде вращения и шаре, понятие о географической сетке. Координатную систему эллипсоида вращения образует географическая сетка – линии меридианов и параллелей. Рассекая эллипсоид плоскостями, проходящими через полярную ось, получают линии меридианов, а плоскостями, проходящими перпендикулярно этой оси, линии параллелей. Линия экватора – след сечения эллипсоида плоскостью, проходящей через его центр перпендикулярно полярной оси. Меридианы и параллели обозначают угловыми мерами широты и долготы, которые определяют положение любой точки на земном эллипсоиде. Широта B – угол, образованный нормалью к поверхности земного эллипсоида в данной точке и плоскостью его экватора. Долгота L – двугранный угол между плоскостями меридиана данной точки и начального меридиана, за который в 1884 году принят Гринвичский меридиан.
Сферические долготы λ и широты φ приравнивают к соответствующим долготам L и широтам B эллипсоида.
Читайте также: