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

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

Создайте пустую карту оси, готовые содержать данные по вашему выбору. Функциональный worldmap автоматически выбирает разумный выбор для вашей проекции карты и координатных пределов. Чтобы отобразить мировую карту, функция выбрала проекцию Robinson, сосредоточенную на главном меридиане и экваторе (широта на 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 географический эквивалент plot MATLAB функция. Это принимает координаты в широте и долготе, преобразовывает их к X и Y через заданную проекцию карты и отображает их в оси вращения. В этом примере, worldmap использует проекцию Робинсона.

plotm(coastlat, coastlon)

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

h = worldmap('Europe');

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

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

Добавьте данные в карту Европы при помощи geoshow функционируйте, чтобы импортировать и отобразить несколько файлов форм в toolbox/map/mapdata папка. Отметьте как 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')