Существует много наборов геопространственных данных, которые содержат данные с координатами в широте и долготе в единицах степеней. Этот пример иллюстрирует, как импортировать географические данные с координатами в широте и долготе, отобразить географические данные в отображении карты и настроить отображение.
В частности, этот пример иллюстрирует, как
Импорт конкретных наборов географических векторов и растровых данных
Создайте отображения карты и визуализируйте данные
Отобразите несколько наборов данных в одном отображении карты
Настройте отображение карты с помощью линейки шкалы и стрелы на север
Настройте отображение карты с помощью карты вставки
Географические векторы данные могут храниться в различных форматах, для примера форматов shapefile и GPS Exchange (GPX). Этот пример импортирует данные географического вектора многоугольника из файла shapefile. Вершины в файле shapefile могут быть либо в географических координатах (широта и долгота), либо в проективной системе координат-привязок.
Считайте контуры состояния США от 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™. Файл содержит координаты широты и долготы географических точечных функций в части Бостона, Массачусетс, США. Использование 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');
Отображение данных о географических векторах в осях карты с центром вокруг состояния Массачусетс с помощью данных о контурах и файлах 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'})
Увеличьте изображение карты путем вычисления новых пределов широты и долготы для карты с помощью объема плацкартных имен и данных о маршруте. Продлить пределы на 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')
Географические растровые данные могут храниться в различных форматах, например в форматах 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));
Отображение изображения RGB на осях карты. Пределы карты заданы пределами, заданными пространственным объектом привязки, R
. Координаты данных указаны в широте и долготе.
figure ax = usamap(RGB, R); setm(ax, ... 'MLabelLocation',.05, 'PLabelLocation',.05, ... 'MLabelRound',-2, 'PLabelRound',-2) geoshow(RGB, R) title('Boston Overview')
Можно отобразить растровые и векторные данные в одном отображении карты. Поскольку координаты для всех этих наборов данных имеют широту и долготу, используйте 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')
Настройте отображение карты путем включения линейки шкалы. Линейка шкалы является графическим объектом, который показывает расстояния на земле при правильном размере для проекции. Этот пример иллюстрирует, как создать линейку шкалы, которая отображает горизонтальные расстояния в международных милях.
Вычислите пределы широты и долготы Массачусетса и удлините пределы на .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'})
Настройте карту путем добавления стрелы к северу. Северная стрела является графическим элементом, указывающим на географический Северный полюс.
Используйте значения широты и долготы для позиционирования северной стрелы.
northArrowLat = 42.5; northArrowLon = -70.25; northarrow('Latitude', northArrowLat, 'Longitude', northArrowLon); title({titleText, 'with Scale Ruler and North Arrow'})
Настройте карту путем добавления карты вставки. 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
.
geoplot
| geoscatter
| geoshow
| northarrow
| scaleruler
| usamap