Создайте отображения карты с географическими данными

Существует много наборов картографических данных, которые содержат данные с координатами в широте и долготой в модулях степеней. Этот пример иллюстрирует, как импортировать географические данные с координатами в широте и долготе, отобразить географические данные в отображении карты и настроить отображение.

В частности, этот пример иллюстрирует как к

  • Импортируйте определенный географический вектор и растровые наборы данных

  • Создайте отображения карты и визуализируйте данные

  • Отобразите несколько наборов данных в одном отображении карты

  • Настройте отображение карты с линейкой шкалы и северной стрелой

  • Настройте отображение карты с картой вставки

Пример 1: импортируйте многоугольник географические векторные данные

Географические векторные данные могут храниться во множестве различных форматов, например, файл форм и Exchange GPS (GPX) форматы. Этот пример импортирует многоугольник географические векторные данные из файла форм. Вершины в файле форм могут быть любой в географических координатах (широта и долгота) или в спроектированной системе координат.

Считайте государственные границы США из usastatehi.shp файл включен с программным обеспечением Mapping Toolbox™. Государственные границы находятся в широте и долготе.

states = shaperead('usastatehi.shp','UseGeoCoords',true);

Пример 2: отобразите многоугольник географические векторные данные

Отобразите многоугольник географические векторные данные на карту оси. Поскольку географическая степень находится в Соединенных Штатах, можно использовать 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'})

Пример 3: импортируйте точку и линию географические векторные данные

Импортируйте точку географические векторные данные из 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');

Пример 4: отобразите точку и линию географические векторные данные

Отобразите географические векторные данные в карте оси, сосредоточенные вокруг Массачусетса, с помощью данных из государственных границ и файлов 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'})

Пример 5: установите пределы широты и долготы на основе степени данных

Масштабируйте в карту путем вычисления новых пределов широты и долготы для карты с помощью степени топонимов и направьте данные. Расширьте пределы 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')

Пример 6: импортируйте географические растровые данные

Географические растровые данные могут храниться во множестве различных форматов, например, 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));

Пример 7: отобразите географические растровые данные

Отобразите изображение 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')

Пример 8: отобразите географические данные о векторе и растре

Можно отобразить растр и векторные данные в одном отображении карты. Поскольку координаты для всех этих наборов данных находятся в широте и долготе, используют 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')

Пример 9: настройте отображение карты с линейкой шкалы

Настройте отображение карты включением линейки шкалы. Линейка шкалы является графическим объектом, который показывает расстояния на земле в правильном размере для проекции. Этот пример иллюстрирует, как создать линейку шкалы, которая отображает горизонтальные расстояния в международных милях.

Вычислите пределы широты и долготы Массачусетса и расширьте пределы 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'})

Пример 10: настройте отображение карты северной стрелой

Настройте карту путем добавления северной стрелы. Северная стрела является графическим элементом, указывающим на географический Северный полюс.

Используйте значения широты и долготы, чтобы расположить северную стрелу.

northArrowLat =  42.5;
northArrowLon = -70.25;
northarrow('Latitude',northArrowLat,'Longitude',northArrowLon);
title({titleText,'with Scale Ruler and North Arrow'})

Пример 11: настройте отображение карты с картой вставки

Настройте карту путем добавления карты вставки. Карта вставки является маленькой картой в рамках увеличенной карты, которая позволяет вам визуализировать более крупную географическую область своей основной карты. Создайте карту для окружающей области как карта вставки. Используйте 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.

Смотрите также

| | | | |

Для просмотра документации необходимо авторизоваться на сайте