В этом примере показано, как отобразить векторные карты как линии или закрашенные фигуры (заполненный - в многоугольниках). Функции 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.shp', 'UseGeoCoords', true, ... 'BoundingBox', [uslonlim', uslatlim'])
rivers=23×1 struct array with fields:
Geometry
BoundingBox
Lon
Lat
Name
Обратите внимание на то, что Geometry
поле задает, хранятся ли данные как Point
, MultiPoint
строка
, или 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')