Создание отображений карты с данными о широте и долготе

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

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

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

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

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

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

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

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

Географические векторные данные могут храниться во множестве различных форматов включая стандартные форматы файлов, такие как файлы форм, Exchange GPS (GPX), NetCDF, HDF4, или HDF5 и определенные векторные результаты обработки данных, такие как Векторный Умный Уровень 0 (VMAP0) Карты и Глобальная Последовательная Иерархическая География С высоким разрешением (GSHHG). Этот пример импортирует полигон географические векторные данные из файла форм. Вершины в файле форм могут быть любой в географических координатах (широта и долгота) или в спроектированной координатной ссылочной системе.

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

states = geoshape(shaperead('usastatehi', 'UseGeoCoords', true));

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

Отобразите полигон географические векторные данные на карту оси. Поскольку географическая степень находится в Соединенных Штатах, можно использовать usamap, чтобы установить карту оси. Используйте geoshow, чтобы спроектировать и отобразить географические данные на оси карты. Отобразите океанский цвет в фоновом режиме путем выбирания цвета поверхности кадра.

figure
ax = usamap('conus');
oceanColor = [.5 .7 .9];
setm(ax, 'FFaceColor', oceanColor)
geoshow(states)
title({ ...
    'Conterminous USA State Boundaries', ...
    'Polygon Geographic Vector Data'})

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

Импортируйте точку географические векторные данные из файла boston_placenames.gpx, включенного с программным обеспечением Mapping Toolbox™. Файл содержит координаты широты и долготы географических функций точки в части Бостона, Массачусетса, США. Используйте gpxread, чтобы считать файл GPX и возвратить geopoint vector.

placenames = gpxread('boston_placenames');

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

route = gpxread('sample_route.gpx');

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

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

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

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

Используйте usamap, чтобы установить карту оси для области, окружающей Массачусетс. Окрасьте океан путем выбирания цвета поверхности кадра. Отобразите государственные границы и подсветите Массачусетс при помощи geoshow, чтобы отобразить географические данные на оси карты. Поскольку маршрут GPX является набором точек, сохраненных в geopoint vector, предоставьте координаты широты и долготы к geoshow, чтобы отобразить маршрут как строку.

figure
ax = usamap('ma');
setm(ax, 'FFaceColor', oceanColor)
geoshow(states)
geoshow(ma, 'LineWidth', 1.5, 'FaceColor', [.5 .8 .6])
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(states)
geoshow(placenames)
geoshow(route.Latitude, route.Longitude)
title('Closeup of Placenames and Route')

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

Географические растровые данные могут храниться во множестве различных форматов включая стандартные форматы файлов, такие как GeoTIFF, Пространственный стандарт передачи данных (SDTS), NetCDF, HDF4, или HDF5 и определенные растровые результаты обработки данных, такие как DTED, GTOPO30, ETOPO и 1 степень USGS (3 образуют дугу вторые), форматы DEM. Этот пример импортирует растровый файл данных и worldfile области, окружающей Бостон, Массачусетс. Координаты изображения находятся в широте и долготе. Используйте 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(states.Latitude, states.Longitude, 'LineWidth', 2, 'Color', 'y')
geoshow(placenames)
geoshow(route.Latitude, route.Longitude)
title('Boston Overview and Geographic Vector Data')

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

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

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

latlim = [min(ma.Latitude),  max(ma.Latitude)];
lonlim = [min(ma.Longitude), max(ma.Longitude)];
[latlim, lonlim] = bufgeoquad(latlim, lonlim, .05, .05);

Отобразите государственную границу, топонимы, маршрут и изображение обзора на карту.

figure
ax = usamap(latlim, lonlim);
setm(ax, 'FFaceColor', oceanColor)
geoshow(states)
geoshow(ma, 'LineWidth', 1.5, 'FaceColor', [.5 .8 .6])
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', [.9 .6 .7], '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:

Office of Geographic and Environmental Information (MassGIS),

Commonwealth of Massachusetts Executive Office of Environmental Affairs

http://www.state.ma.us/mgis

For more information, run:

>> type boston_placenames_gpx.txt

boston_ovr.jpg:

Copyright GeoEye

Includes material copyrighted by GeoEye, all rights reserved. For more

information, please call 1.703.480.7539 or visit http://www.geoeye.com

Copyright GeoEye

Includes material copyrighted by GeoEye, all rights reserved.

(GeoEye was merged into the DigitalGlobe corporation January 29,

2013.)

For more information, run:

>> type boston_ovr.txt

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

| | | | | |