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

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

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

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

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

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

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

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

Пример 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™. Файл содержит координаты широты и долготы географических функций точки в части Бостона, Массачусетса, США. Используйте gpxread считать файл GPX и возвратить geopoint вектор.

placenames = gpxread('boston_placenames.gpx');

Импортируйте данные о векторе линии от sample_route.gpx файл включен с программным обеспечением Mapping Toolbox™. Файл содержит координаты широты и долготы для маршрута GPS от Бостонского международного аэропорта Логан до MathWorks, Inc в Натике Массачусетс, США. Используйте gpxread считать файл GPX и возвратить geopoint вектор.

route = gpxread('sample_route.gpx');

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

Отобразите географические векторные данные в карте оси, сосредоточенные вокруг Массачусетса, с помощью данных из государственных границ и файлов GPX. Координаты для всех этих наборов данных находятся в широте и долготе.

Найдите государственную границу для Массачусетса.

stateName = 'Massachusetts';
ma = states(strcmp({states.Name},stateName));

Используйте usamap устанавливать карту оси для области, окружающей Массачусетс. Окрасьте океан путем выбирания цвета поверхности системы координат. Отобразите государственные границы и подсветите Массачусетс при помощи geoshow отобразить географические данные на оси карты. Поскольку маршрут GPX является набором точек, сохраненных в geopoint вектор, предоставьте координаты широты и долготы к 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.Latitude, route.Longitude);
title({'Massachusetts and Surrounding Region', 'Placenames and Route'})

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

Масштабируйте в карту путем вычисления новых пределов широты и долготы для карты с помощью степени топонимов и направьте данные. Расширьте пределы.05 градусами.

lat = [route.Latitude placenames.Latitude];
lon = [route.Longitude placenames.Longitude];
latlim = [min(lat) max(lat)];
lonlim = [min(lon) max(lon)];
[latlim, lonlim] = bufgeoquad(latlim, lonlim, .05, .05);

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

figure
ax = usamap(latlim, lonlim);
setm(ax, 'FFaceColor', oceanColor)
geoshow(ma,'FaceColor',maColor)
geoshow(placenames)
geoshow(route.Latitude, route.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',.05, 'PLabelLocation',.05, ...
    'MLabelRound',-2, 'PLabelRound',-2)
geoshow(RGB, R)
title('Boston Overview')

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

Можно отобразить растр и векторные данные в одном отображении карты. Поскольку координаты для всех этих наборов данных находятся в широте и долготе, используют geoshow отобразить их в одном отображении карты. Setup новые пределы на основе пределов маршрута, топонимов и изображения обзора.

lat = [route.Latitude  placenames.Latitude  R.LatitudeLimits];
lon = [route.Longitude placenames.Longitude R.LongitudeLimits];
latlim = [min(lat) max(lat)];
lonlim = [min(lon) max(lon)];
figure
ax = usamap(latlim, lonlim);
setm(ax, 'GColor','k', ...
    'PLabelLocation',.05, 'PLineLocation',.05)
geoshow(RGB, R)
geoshow(ma.Lat, ma.Lon, ...
    'LineWidth', 2, 'Color', 'y')
geoshow(placenames)
geoshow(route.Latitude, route.Longitude)
title('Boston Overview and Geographic Vector Data')

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

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

Вычислите пределы широты и долготы Массачусетса и расширьте пределы.05 градусами при помощи bufgeoquad функция.

latlim = [min(ma.Lat),  max(ma.Lat)];
lonlim = [min(ma.Lon), max(ma.Lon)];
[latlim, lonlim] = bufgeoquad(latlim, lonlim, .05, .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.Latitude, route.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', [.15 .6 .2 .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.

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

| | | | |

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