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