Как сделать компоновку карты

Обновлено: 06.07.2024

Как создать шаблон функции?

Как мне импортировать компоновку в 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)):

Окно Catalog

В каталоге 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)):

Механизм размещения подписей 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)):

Добвление текста через панель __Drawing__

Разместите под картой по центру численный масштаб $1:30 000 000$.

Результат (Рис. @ref(fig:mde-res)):

Итоговый вид карты

Снимок экрана №5. Итоговая карта

Сохраните документ карты.

Экспорт в графический файл

Экспортируйте карту из режима компоновки (File > Export Map. ) в формат PNG с разрешением 300 точек на дюйм. Сохраните его в свою директорию.

Вставьте карту в отчетный файл

Какие типы геометрии допустимы для слоев в базе геоданных? К каким типа относятся слои, использованные вами в работе?

В какой системе координат хранились данные, которые вы использовали для составления карты?

Какая проекция была использована вами в работе? К какому типу по характеру искажений она относится?

Где хранятся числовые данные, которые используются для построения картограмм и картодиаграмм?

Две не­де­ли на­зад имел со­мни­тель­ное удо­вольст­вие ри­со­вать кар­ту для ММБ 2017/осень. Решил на­пи­сать эту статью по­сколь­ку про­цесс по-преж­не­му далёк от дру­жест­вен­нос­ти поль­зо­ва­те­лю.

Общий план

Сей­час за ос­но­ву при­ня­то брать го­то­вый век­тор из OSM. Спо­со­бов ска­чи­ва­ния кус­ка кар­ты опи­са­но в их ви­ки до­воль­но мно­го. Кар­та по­лу­че­на, те­перь на­до:

  1. Нари­со­вать свои де­та­ли
  2. Доба­вить дан­ные SRTM 1
  3. Соз­дать стиль от­ри­со­вки эле­мен­тов кар­ты на при­бо­ре Garmin (лес бу­дет ото­бра­жать­ся ёлоч­ка­ми, по­ле тра­ви­нка­ми т.д.)
  4. Ском­по­но­вать кар­ту
  5. Залить на при­бор

Рисо­ва­ние

Тут всё прос­то: вы­би­ра­ем лю­бой по­нра­вив­ший­ся ре­дак­тор 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 . Их при­мер­ный спи­сок.

  1. Сопо­ста­вить по ка­ким-то пра­ви­лам ат­ри­бу­ты объ­ек­тов в OSM с ID ти­пов в Garmin
  2. Нари­со­вать для них кар­тин­ки.

Рисо­ва­ние кар­ти­нок

Нач­ну во вто­ро­го пунк­та про­грам­мы т.к. без не­го не­воз­можен пер­вый. Фор­мат хра­не­ния 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 за­хва­ты­ва­ет дух да­же у бы­ва­ло­го про­грам­мис­та:

  1. Одно­цвет­ные по­ли­го­ны (за­лив­ка) за­да­ют­ся XPM, в ко­то­ром от­сут­ст­ву­ет битмап. Уточ­не­ния:
    • вс­ег­да ра­вен ну­лю
    • = 1: за­да­ет цвет по­ли­го­на
    • = 2: за­да­ет днев­ной и но­чной цвет по­ли­го­на
    • иное ко­ли­чест­во цве­тов за­пре­ще­но
  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 эллипсоида.

Читайте также: