В этом примере показано, как использовать 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')