gpxread

Описание

пример

P = gpxread(filename) считывает данные о точке из Формата обмена GPS (GPX) файл, filename, и возвращает n-by-1 вектор геоточки, P, где n является количеством waypoints или точками, которые задают маршрут или дорожку.

gpxread ищет файл сначала waypoints, затем направляет, и затем отслеживает, и это возвращает первый тип данных, которые это находит. Поле метаданных P идентифицирует тип функции ('waypoint', 'track', или 'route') и любые дополнительные метаданные, сопоставленные с waypoint, маршрутом или дорожкой. Если файл содержит несколько дорожек или маршрутов, P содержит точки, которые задают первую дорожку или маршрут в файле. Если gpxread не может найти функции в файле, он возвращает пустой вектор геоточки.

P = gpxread(URL) считывает данные GPX из URL. URL должен включать тип протокола (например, http://).

пример

S = gpxread(___,'Index',V) возвращает данные из файла GPX в векторе геоформы, а не векторе геоточки, только если файл содержит дорожку или данные о маршруте и вы задаете значение 'Index' как вектор, V. Используйте этот синтаксис, когда это необходимо, чтобы работать с данными как линия, а не как набор точек.

пример

___ = gpxread(___,Name,Value) считывает данные из файла GPX с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы, то управление различные характеристики импорта. Name имя аргумента и Value соответствующее значение. Name должен появиться в одинарных кавычках ('') и является нечувствительным к регистру. Можно задать несколько аргументов пары "имя-значение" в любом порядке.

Примеры

свернуть все

Считайте и отобразите waypoints от boston_placenames.gpx файл и наложение точки на boston.tif изображение.

Во-первых, импортируйте файл GeoTIFF и waypoints.

p = gpxread('boston_placenames.gpx');
[A,R] = readgeoraster('boston.tif');

Получите структуру проекции изображения GeoTIFF. Преобразуйте единицу длины пределов X и Y метрам для использования со структурой проекции.

proj = geotiffinfo('boston.tif');
mstruct = geotiff2mstruct(proj);
R.XWorldLimits = R.XWorldLimits * proj.UOMLengthInMeters;
R.YWorldLimits = R.YWorldLimits * proj.UOMLengthInMeters;

Отобразите карту.

axesm(mstruct)
mapshow(A,R)

Отобразите имена и положения каждой точки.

for k=1:length(p)
   textm(p(k).Latitude, p(k).Longitude, p(k).Name, ...
      'Color','k','BackgroundColor',[0.9 0.9 0],...
      'Interpreter','none');
end
geoshow(p)
xlim(R.XWorldLimits)
ylim(R.YWorldLimits)

Считайте и отобразите маршрут от Бостонского международного аэропорта Логан до MathWorks в Натике, MA.

Считайте информации маршрута из файла GPX.

route = gpxread('sample_route');

Вычислите latlim и lonlim с 0,05 буферами.

[latlim, lonlim] = geoquadline(route.Latitude, route.Longitude);
[latlim, lonlim] = bufgeoquad(latlim, lonlim, .05, .05);

Отобразите маршрут.

fig = figure;
pos = fig.Position;
fig.Position = [300 300 1.25*pos(3) 1.25*pos(4)];
ax = usamap(latlim, lonlim);
setm(ax, 'MLabelParallel', 43.5)
geoshow(route.Latitude, route.Longitude)

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

turns = route(~cellfun(@isempty, route.Description));
turns = turns(end:-1:1);
n = length(turns);
colors = cool(n);
for k=1:n
   geoshow(turns(k).Latitude, turns(k).Longitude, ...
       'DisplayType','point','MarkerEdgeColor',colors(k,:),...
       'Tag','turn','DisplayName',turns(k).Description)
end
legend(findobj(ax,'Tag','turn'),'Location','SouthOutside')

Считайте журнал дорожки из файла GPX и отображения, наложенного на веб-карте.

Считайте журналы дорожки из файла GPX. gpxread возвращает данные в геообъекте фигуры.

tracks = gpxread('sample_tracks', 'Index', 1:2);

Отобразите вход в систему дорожки веб-карта с различным цветом для каждого журнала дорожки.

webmap('openstreetmap')
colors = {'cyan', 'red'};
wmline(tracks, 'Color', colors)

Масштабируйте веб-карту, чтобы просмотреть первую дорожку около кампуса MathWorks в Натике.

[latlim, lonlim] = geoquadline(tracks(1).Latitude, tracks(1).Longitude);
wmlimits(latlim, lonlim)

Считайте waypoints и отследите журнал от sample_mixed.gpx файл.

wpt = gpxread('sample_mixed');
trk = gpxread('sample_mixed', 'FeatureType', 'track');

Отобразите waypoints и вход в систему дорожки веб-карта.

webmap('worldimagery')
wmline(trk, 'OverlayName', 'Track Logs');

Добавьте веб-маркеры, чтобы отметить положения каждого пути точка.

wmmarker(wpt, 'FeatureName', wpt.Name, 'OverlayName', 'Waypoints')

В этом примере показано, как отобразить вертикальное изменение и карты области времени и вычислить расстояние с помощью журналов дорожки.

Считайте журнал дорожки из sample_mixed.gpx файл.

trk = gpxread('sample_mixed', 'FeatureType', 'track');

Преобразуйте строки временной стоимости в последовательные числа даты с помощью datenum, и затем вычислите время суток в мелких секундах часов.

timeStr = strrep(trk.Time, 'T', ' ');
timeStr = strrep(timeStr, '.000Z', '');
trk.DateNumber = datenum(timeStr, 31);
day = fix(trk.DateNumber(1));
trk.TimeOfDay = trk.DateNumber - day;

Отобразите график области вертикального изменения и временных стоимостей.

figure
area(trk.TimeOfDay, trk.Elevation)
datetick('x', 13, 'keepticks', 'keeplimits')
ylabel('elevation (meters)')
xlabel('time(Z) hours:minutes:seconds')
title({'Elevation Area Plot', datestr(day)});

Figure contains an axes. The axes with title Elevation Area Plot 28-Aug-2010 contains an object of type area.

Вычислите и отобразите наземное расстояние дорожки. Преобразуйте расстояние в метрах к расстоянию в американских милях обзора.

e = wgs84Ellipsoid;
lat = trk.Latitude;
lon = trk.Longitude;
d = distance(lat(1:end-1), lon(1:end-1), lat(2:end), lon(2:end), e);
d = d * unitsratio('sm', 'meter');

Отобразите совокупное наземное расстояние дорожки и прошедшее время.

trk.ElapsedTime = trk.TimeOfDay - trk.TimeOfDay(1);
figure
line(trk.ElapsedTime(2:end), cumsum(d))
datetick('x', 13)
ylabel('cumulative ground track distance (statute mile)')
xlabel('elapsed time  (hours:minutes:seconds)')
title({'Cumulative Ground Track Distance in Miles', datestr(day),  ...
   ['Total Distance in Miles: ' num2str(sum(d))]});

Figure contains an axes. The axes with title Cumulative Ground Track Distance in Miles 28-Aug-2010 Total Distance in Miles: 46.0637 contains an object of type line.

Входные параметры

свернуть все

Имя файла GPX, чтобы открыться в виде строкового скаляра или вектора символов. Если файл не находится в текущей папке или в папке на пути MATLAB®, необходимо задать путь к папке. Если имя файла включает дополнительный '.gpx' (или верхний регистр или нижний регистр), можно не использовать расширение от filename.

Пример: 'boston_placenames'

Типы данных: char | string

Интернет-местоположение, содержащее данные GPX в виде URL. URL Должен включать тип протокола (например, https://).

Типы данных: char | string

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'FeatureType','track'

Тип функции, чтобы читать из файла в виде одного из следующего: 'track', 'route', 'waypoint', или 'auto'. Если gpxread не может найти заданную функцию в файле, она возвращает пустой вектор геоточки.

Пример: 'FeatureType','waypoint'

Типы данных: char | string

Индекс waypoint, дорожки или данных о маршруте в файле в виде скаляра или вектора из положительных целых чисел.

  • Если значение является скаляром, gpxread возвращает заданный waypoint, маршрут или дорожку как вектор геоточки. Если скалярное значение больше общего количества элементов, найденных в файле, gpxread возвращает пустой вектор геоточки.

  • Если значение является вектором, и файл содержит waypoints, gpxread возвращает те waypoints, заданные вектором. Если файл содержит маршруты или дорожки (и не содержит waypoints), gpxread возвращает заданные маршруты, или дорожка входит в систему вектор геоформы. gpxread устанавливает поле Geometry вектора геоформы к 'line'.

Пример: 'Index', [1:2] считал бы до двух маршрутов или дорожки, если бы файл содержал маршруты или дорожки в векторе геоформы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Waypoint, дорожка, или данные о маршруте, возвратился как n-by-1 вектор геоточки, где n является числом точек.

Для журнала дорожки или маршрута с несколькими сегментами, gpxread конкатенирует координаты сегментов с NaN диафрагмы. NaN обозначает числовые элементы, не найденные в файле. Пустой символьный вектор ('') используется, чтобы обозначить текстовые элементы, не найденные в файле.

Отследите или направьте данные, возвращенные как n-by-1 вектор геоточки

Больше о

свернуть все

waypoint

Интересное место или названная функция на карте.

дорожка

Упорядоченный список waypoints, которые описывают путь.

маршрут

Упорядоченный список waypoints представление ряда продвижения точек поворота месту назначения.

Советы

  • Исключая расширения полностью поддерживается версия 1.1 GPX. Если какая-либо другая версия обнаруживается, предупреждение выдано. Однако в большинстве случаев, версия 1.0, файлы GPX могут быть считаны успешно, если они не содержат определенные теги метаданных. Для получения дополнительной информации см. документацию GPX 1.1 Схемы.

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

| |

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