Создайте свою первую карту мира

В этом примере показано, как использовать Mapping Toolbox для создания карты мира. Геопространственные данные могут быть объемными, сложными и трудными для обработки. Функции Mapping Toolbox обрабатывают многие детали загрузки и отображения геопространственных данных, и используют встроенные структуры данных, которые облегчают хранение данных. Пространственные данные относятся к данным, описывающим местоположение, форму и пространственные зависимости. Геопространственные данные - это пространственные данные, которые каким-либо образом привязаны к определенным местам на, под или над поверхностью планеты.

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

worldmap world

Импорт данных по береговой линии с низким разрешением. Данные береговой линии являются набором дискретных вершин, которые при соединении в заданном порядке аппроксимируют береговые линии континентов, крупных островов и внутренних морей. Вершинные широты и долготы хранятся как векторы в MAT-файле. Загрузите MAT-файл и просмотрите переменные в рабочей области.

load coastlines
whos
  Name             Size            Bytes  Class     Attributes

  coastlat      9865x1             78920  double              
  coastlon      9865x1             78920  double              

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

[latcells, loncells] = polysplit(coastlat, coastlon);
numel(latcells)
ans = 241

Постройте график данных о береговой линии по осям карты с помощью plotm функция. plotm - географический эквивалент MATLAB plot функция. Он принимает координаты в широте и долготе, преобразует их в x и y через заданную проекцию карты и отображает их в осях рисунка. В этом примере worldmap использует проекцию Робинсона.

plotm(coastlat, coastlon)

Создайте новые оси карты для графического изображения данных над Европой. На этот раз задайте возвращаемый аргумент для worldmap функция для получения указателя на оси рисунка. Объект осей, на котором отображаются данные карты, называется осями карты. В дополнение к графическим свойствам, общим для любого объекта осей MATLAB, объект осей карты содержит дополнительные свойства, охватывающие тип проекции карты, параметры проекции, пределы карты и т.д. The getm и setm функции и другие позволяют вам получить доступ и изменить эти свойства.

h = worldmap('Europe');

Определите, какая проекция карты worldmap используется.

getm(h,'MapProjection')
ans = 
'eqdconic'

Добавить данные на карту Европы можно используя geoshow функция для импорта и отображения нескольких выборок shapefiles. Обратите внимание, как geoshow функция может выводить данные непосредственно из файлов на оси карты, не импортируя их предварительно в рабочую область. Чтобы изменить цвет маркера, используйте MarkerEdgeColor свойство и, для некоторых маркеров, MarkerFaceColor свойство.

geoshow('landareas.shp', 'FaceColor', [0.15 0.5 0.15])
geoshow('worldlakes.shp', 'FaceColor', 'cyan')
geoshow('worldrivers.shp', 'Color', 'blue')
geoshow('worldcities.shp', 'Marker', '.',...
                           'MarkerEdgeColor', 'magenta')

Разместите метку на карте, чтобы идентифицировать Средиземное море.

labelLat = 35;
labelLon = 14;
textm(labelLat, labelLon, 'Mediterranean Sea')