Существует много наборов картографических данных, которые содержат данные с координатами в широте и долготой в модулях степеней. Этот пример иллюстрирует, как импортировать географические данные с координатами в широте и долготе, отобразить географические данные в отображении карты и настроить отображение.
В частности, этот пример иллюстрирует как к
Импортируйте определенный географический вектор и растровые наборы данных
Создайте отображения карты и визуализируйте данные
Отобразите несколько наборов данных в одном отображении карты
Настройте отображение карты с линейкой шкалы и северной стрелой
Настройте отображение карты с картой вставки
Географические векторные данные могут храниться во множестве различных форматов, например, файл форм и Exchange GPS (GPX) форматы. Этот пример импортирует многоугольник географические векторные данные из файла форм. Вершины в файле форм могут быть любой в географических координатах (широта и долгота) или в спроектированной системе координат.
Считайте государственные границы США из usastatehi.shp
файл включен с программным обеспечением Mapping Toolbox™. Государственные границы находятся в широте и долготе.
states = shaperead('usastatehi.shp','UseGeoCoords',true);
Отобразите многоугольник географические векторные данные на карту оси. Поскольку географическая степень находится в Соединенных Штатах, можно использовать usamap
устанавливать карту оси. Используйте geoshow
спроектировать и отобразить географические данные на оси карты. Отобразите океанский цвет в фоновом режиме путем выбирания цвета поверхности системы координат.
figure ax = usamap('conus'); oceanColor = [0.3010 0.7450 0.9330]; landColor = [0.9290 0.6940 0.1250]; setm(ax,'FFaceColor',oceanColor) geoshow(states,'FaceColor',landColor) title({'Conterminous USA State Boundaries', ... 'Polygon Geographic Vector Data'})
Импортируйте точку географические векторные данные из boston_placenames.gpx
файл включен с программным обеспечением Mapping Toolbox™. Файл содержит координаты широты и долготы географических функций точки в части Бостона, Массачусетса, США. Используйте readgeotable
функционируйте, чтобы считать файл GPX и возвратить геопространственную таблицу с одной строкой для каждой точки и ее атрибутов.
placenames = readgeotable('boston_placenames.gpx');
Импортируйте данные о векторе линии от sample_route.gpx
файл включен с программным обеспечением Mapping Toolbox™. Файл содержит координаты широты и долготы для маршрута GPS от Бостонского международного аэропорта Логан до MathWorks, Inc в Натике Массачусетс, США. Используйте readgeotable
функционируйте, чтобы считать файл GPX и возвратиться, геопространственная таблица содержит каждую точку вдоль маршрута.
route = readgeotable('sample_route.gpx');
Отобразите географические векторные данные в карте оси, сосредоточенные вокруг Массачусетса, с помощью данных из государственных границ и файлов GPX. Координаты для всех этих наборов данных находятся в широте и долготе.
Найдите государственную границу для Массачусетса.
stateName = 'Massachusetts';
ma = states(strcmp({states.Name},stateName));
Используйте usamap
устанавливать карту оси для области, окружающей Массачусетс. Окрасьте океан путем выбирания цвета поверхности системы координат. Отобразите государственные границы и подсветите Массачусетс при помощи geoshow
отобразить географические данные на оси карты. Поскольку маршрут GPX является набором точек, сохраненных в geopointshape
вектор, предоставьте координаты широты и долготы к geoshow
отобразить маршрут как линию.
figure ax = usamap('ma'); maColor = [0.4660 0.6740 0.1880]; setm(ax,'FFaceColor',oceanColor) geoshow(states,'FaceColor',landColor) geoshow(ma,'FaceColor',maColor) geoshow(placenames); geoshow(route.Shape.Latitude,route.Shape.Longitude); title({'Massachusetts and Surrounding Region','Placenames and Route'})
Масштабируйте в карту путем вычисления новых пределов широты и долготы для карты с помощью степени топонимов и направьте данные. Расширьте пределы 0,05 градусами.
lat = [route.Shape.Latitude; placenames.Shape.Latitude]; lon = [route.Shape.Longitude; placenames.Shape.Longitude]; [latlim,lonlim] = geoquadpt(lat,lon); [latlim,lonlim] = bufgeoquad(latlim,lonlim,0.05,0.05);
Создайте карту оси с новыми пределами и отобразите географические данные.
figure ax = usamap(latlim,lonlim); setm(ax,'FFaceColor',oceanColor) geoshow(ma,'FaceColor',maColor) geoshow(placenames) geoshow(route.Shape.Latitude,route.Shape.Longitude) title('Closeup of Placenames and Route')
Географические растровые данные могут храниться во множестве различных форматов, например, GeoTIFF, Сетка Esri, DTED и форматы ENVI. Чтобы считать данные в этих форматах, используйте readgeoraster
функция.
Чтобы считать изображение, сопоставленное с worldfile, используйте imread
и worldfileread
функции вместо этого. Используйте imread
считать изображение и worldfileread
считать worldfile и создать пространственный объект привязки. В данном примере импортируйте данные для области, окружающей Бостон, Массачусетс. Координаты изображения находятся в широте и долготе.
filename = 'boston_ovr.jpg'; RGB = imread(filename); R = worldfileread(getworldfilename(filename),'geographic',size(RGB));
Отобразите изображение RGB на карту оси. Пределы карты устанавливаются к пределам, заданным пространственным объектом привязки, R
. Координаты данных находятся в широте и долготе.
figure ax = usamap(RGB,R); setm(ax,'MLabelLocation',0.05,'PLabelLocation',0.05, ... 'MLabelRound',-2,'PLabelRound',-2) geoshow(RGB,R) title('Boston Overview')
Можно отобразить растр и векторные данные в одном отображении карты. Поскольку координаты для всех этих наборов данных находятся в широте и долготе, используют geoshow
отобразить их в одном отображении карты. Setup новые пределы на основе пределов маршрута, топонимов и изображения обзора.
lat = [route.Shape.Latitude' placenames.Shape.Latitude' R.LatitudeLimits]; lon = [route.Shape.Longitude' placenames.Shape.Longitude' R.LongitudeLimits]; [latlim,lonlim] = geoquadpt(lat,lon);
figure ax = usamap(latlim,lonlim); setm(ax,'GColor','k','PLabelLocation',0.05,'PLineLocation',0.05) geoshow(RGB,R) geoshow(ma.Lat,ma.Lon,'LineWidth',2,'Color','y') geoshow(placenames) geoshow(route.Shape.Latitude,route.Shape.Longitude) title('Boston Overview and Geographic Vector Data')
Настройте отображение карты включением линейки шкалы. Линейка шкалы является графическим объектом, который показывает расстояния на земле в правильном размере для проекции. Этот пример иллюстрирует, как создать линейку шкалы, которая отображает горизонтальные расстояния в международных милях.
Вычислите пределы широты и долготы Массачусетса и расширьте пределы 0,05 градусами при помощи bufgeoquad
функция.
[latlim,lonlim] = geoquadline(ma.Lat,ma.Lon); [latlim,lonlim] = bufgeoquad(latlim,lonlim,0.05,0.05);
Отобразите государственную границу, топонимы, маршрут и изображение обзора на карту.
figure ax = usamap(latlim,lonlim); setm(ax,'FFaceColor',oceanColor) geoshow(states,'FaceColor',landColor) geoshow(ma,'LineWidth',1.5,'FaceColor',maColor) geoshow(RGB,R) geoshow(placenames) geoshow(route.Shape.Latitude,route.Shape.Longitude) titleText = 'Massachusetts and Surrounding Region'; title(titleText)
Введите линейку шкалы. Можно определить местоположение для линейки шкалы при помощи ginput
функционируйте как показано ниже:
[xLoc,yLoc] = ginput(1);
Местоположение, ранее выбранное, установлено ниже.
xLoc = -127800; yLoc = 5014700; scaleruler('Units','mi','RulerStyle','patches', ... 'XLoc',xLoc,'YLoc',yLoc); title({titleText,'with Scale Ruler'})
Настройте карту путем добавления северной стрелы. Северная стрела является графическим элементом, указывающим на географический Северный полюс.
Используйте значения широты и долготы, чтобы расположить северную стрелу.
northArrowLat = 42.5; northArrowLon = -70.25; northarrow('Latitude',northArrowLat,'Longitude',northArrowLon); title({titleText,'with Scale Ruler and North Arrow'})
Настройте карту путем добавления карты вставки. Карта вставки является маленькой картой в рамках увеличенной карты, которая позволяет вам визуализировать более крупную географическую область своей основной карты. Создайте карту для окружающей области как карта вставки. Используйте axes
функция, чтобы содержать и расположить карту вставки. В карте вставки:
Отобразите государственные границы для окружающей области
Постройте красное поле, чтобы показать степень основной карты
h2 = axes('Position',[0.15 0.6 0.2 0.2],'Visible','off'); usamap({'PA','ME'}) plabel off mlabel off setm(h2,'FFaceColor','w') geoshow(states,'FaceColor',[0.9 0.9 0.9],'Parent',h2) plotm(latlim([1 2 2 1 1]),lonlim([2 2 1 1 2]), ... 'Color','red','LineWidth',2) title(ax,{titleText,'with Scale Ruler, North Arrow, and Inset Map'})
Файл boston_placenames.gpx
из Бюро Географической информации (MassGIS), Массачусетс, Исполнительного Office Технологии и Служб безопасности. Для получения дополнительной информации о наборах данных, используйте команду type boston_placenames_gpx.txt
.
Файл boston_ovr.jpg
включает материалы, защищенные авторским правом GeoEye, все права защищены. GeoEye был объединен в корпорацию DigitalGlobe 29-го января 2013. Для получения дополнительной информации о наборе данных, используйте команду type boston_ovr.txt
.
usamap
| geoshow
| scaleruler
| northarrow
| geoplot
| geoscatter