Этот пример показывает, как отобразить векторные карты как строки или закрашенные фигуры (заполненный - в полигонах). Функции Mapping Toolbox позволяют вам отобразить данные о векторе закрашенной фигуры, которые используют NaNs, чтобы разделить закрытые области.
Используйте команду who
, чтобы исследовать содержимое conus
(совпадающие США) MAT-файл и затем загрузить его в рабочую область. Векторные данные о карте для строк или полигонов могут быть представлены простыми координатными массивами, геоструктурами или mapstructs. Переменные uslat
и uslon
вместе описывают три полигона (разделенный NaNs), самый большой из которых представляют схему совпадающих Соединенных Штатов. Два меньших полигона представляют Лонг-Айленд, Нью-Йорк, и виноградник Марты, остров от Массачусетса. Переменные gtlakelat
и gtlakelon
описывают три полигона (разделенный NaNs) для Великих озер. Переменные statelat
и statelon
содержат данные линейного сегмента (разделенный NaNs) для границ между состояниями, который не отформатирован для отображения закрашенной фигуры.
who -file conus.mat
Your variables are: description gtlakelon statelat uslat gtlakelat source statelon uslon
load conus
Проверьте, что данные о строке и полигоне содержат NaNs (следовательно несколько объектов).
find(isnan(gtlakelon))
ans = 3×1
881
1056
1227
Считайте файл форм worldrivers
для области, которая покрывает совпадающие Соединенные Штаты.
uslatlim = [min(uslat) max(uslat)]
uslatlim = 1×2
25.1200 49.3800
uslonlim = [min(uslon) max(uslon)]
uslonlim = 1×2
-124.7200 -66.9700
rivers = shaperead('worldrivers', 'UseGeoCoords', true, ... 'BoundingBox', [uslonlim', uslatlim'])
rivers = 23x1 struct array with fields:
Geometry
BoundingBox
Lon
Lat
Name
Обратите внимание на то, что поле Geometry
задает, хранятся ли данные как Point
, MultiPoint
, Line
или Polygon
.
rivers(1).Geometry
ans = 'Line'
Настройте карту оси, чтобы отобразить координаты состояния, включив кадр карты, сетку карты, и меридиан и параллельные метки.. Когда конические проекции подходят для отображения целых Соединенных Штатов, создают объект осей карты с помощью конической проекции равной области Алберса ('eqaconic'
). Определение пределов карты, которые содержат видимую область автоматически, сосредотачивает проекцию на соответствующей долготе. Кадр заключает только область отображения, не целый земной шар. Как правило необходимо задать пределы карты, которые расширяют немного вне сферы интересов (worldmap
, и usamap
делают это для вас). Для конических проекций нужны две стандартных параллели (широты, в которых искажение шкалы является нулем). Хорошее правило состоит в том, чтобы установить стандартные параллели в одной шестой пути от обоих экстремальных значений широты. Или, чтобы использовать широты по умолчанию для стандартных параллелей, просто обеспечьте пустую матрицу в вызове axesm
.
figure axesm('MapProjection', 'eqaconic', 'MapParallels', [], ... 'MapLatLimit', uslatlim + [-2 2], ... 'MapLonLimit', uslonlim + [-2 2]) axis off; framem; gridm; mlabel; plabel
Постройте закрашенную фигуру, чтобы отобразить область, занятую совпадающими Соединенными Штатами. Используйте функцию geoshow
с набором DisplayType
к 'polygon'
. Обратите внимание на то, что порядок, в котором добавляют слои в карту, может влиять на видимость, потому что некоторые слои могут скрыть другие слои. Например, потому что некоторые Американские Государственные контуры следуют за крупнейшими реками, отображают реки в последний раз, чтобы не затенять их.
geoshow(uslat,uslon, 'DisplayType','polygon','FaceColor',... [1 .5 .3], 'EdgeColor','none')
Постройте Великие озера сверх контактной площадки, с помощью geoshow
.
geoshow(gtlakelat,gtlakelon, 'DisplayType','polygon',... 'FaceColor','cyan', 'EdgeColor','none')
Отобразите на графике данные о линейном сегменте, показывающие государственные границы, с помощью geoshow
с набором DisplayType
к 'line'
.
geoshow(statelat,statelon,'DisplayType','line','Color','k')
Используйте geoshow
, чтобы построить речную сеть. Обратите внимание на то, что можно не использовать DisplayType
geoshow(rivers, 'Color', 'blue')