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

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

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

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

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

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

  • Настройте отображение карты с помощью линейки шкалы и стрелы на север

  • Настройте отображение карты с помощью карты вставки

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

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

Считайте контуры состояния США от 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-маршрута от международного аэропорта Бостона Логана до The 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: Установите пределы широты и долготы на основе объема данных

Увеличьте изображение карты путем вычисления новых пределов широты и долготы для карты с помощью объема плацкартных имен и данных о маршруте. Продлить пределы на 0,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 Grid, 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: Настройка отображения карты с помощью Inset Map

Настройте карту путем добавления карты вставки. Inset карта - это небольшая карта в большой карте, которая позволяет вам визуализировать больший географический область вашей основной карты. Создайте карту для окружающей области как inset карту. Используйте 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), Содружество Массачусетса, Административная канцелярия по технологиям и службам безопасности. Для получения дополнительной информации о наборах данных используйте команду type boston_placenames_gpx.txt.

Файл boston_ovr.jpg включает материалы, защищенные авторскими правами Геоглаз, все права защищены. Геоглаз была объединена в корпорацию DigitalGlobe 29 января 2013 года. Для получения дополнительной информации о наборе данных используйте команду type boston_ovr.txt.

См. также

| | | | |