read

Читайте ЗДЕСЬ HD Live Map данные слоя

Описание

пример

layerData = read(reader,layerType) читает ЗДЕСЬ HD Live Map[1] (HERE HDLM) данные заданного типа слоя от hereHDLMReader и возвращает массив объектов слоя. Эти объекты слоя содержат данные слоя карты для мозаик карты HERE, идентификаторы которых соответствуют идентификаторам, хранящимся в TileIds свойство reader.

пример

layerData = read(reader,layerType,fields) возвращает массив объектов слоя, содержащий данные только для обязательных полей, таких как HereTileId , и для указанных полей. Все другие поля в объектах возвращаемого слоя возвращаются как пустые: []. Если вам не требуются данные из всех полей в объектах слоя, используйте этот синтаксис, чтобы ускорить эффективность этой функции.

Примеры

свернуть все

Используйте услугу HERE HD Live Map (HERE HDLM), чтобы считать данные топологии маршрута и его окрестностей. Постройте график этих данных, а затем поточный маршрут на географическом проигрывателе.

Загрузите координаты широты и долготы ведущего маршрута в Натике, Массачусетс, США.

route = load('geoSequenceNatickMA.mat');
lat = route.latitude;
lon = route.longitude;

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

player = geoplayer(lat(1),lon(1),'HistoryDepth',5);
plotRoute(player,lat,lon)

for idx = 1:length(lat)
    plotPosition(player,lat(idx),lon(idx))
end

Создайте HERE HDLM Reader из координат маршрута. Если вы ранее не настраивали HDLM-учетные данные HERE, то появится диалоговое окно с приглашением ввести их. Считыватель содержит данные карты для двух мозаик карты, которые пересекает маршрут.

reader = hereHDLMReader(lat,lon);

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

laneTopology = read(reader,'LaneTopology');
plot(laneTopology)

Наложите данные трассы на график.

hold on
geoplot(lat,lon,'bo-','DisplayName','Route');
hold off

Наложите данные топологии маршрута на географический проигрыватель. Отправьте маршрут еще раз.

plot(laneTopology,'Axes',player.Axes)
for idx = 1:length(lat)
    plotPosition(player,lat(idx),lon(idx))
end

Используйте веб-сервис HERE HD Live Map (HERE HDLM), чтобы считать данные геометрии топологии из плитки карты. Используйте эти данные для нахождения кратчайшего пути между двумя узлами в плитке карты.

Определите идентификатор плитки HERE для области Стокгольма, Швеция.

tileID = uint32(378373553);

Создайте HERE HDLM Reader для идентификатора плитки. Настройте устройство чтения для поиска плитки только в каталоге Западной Европы. Если вы ранее не настраивали HDLM-учетные данные HERE, то появится диалоговое окно с приглашением ввести их. Считыватель содержит данные карты для указанной плитки карты.

config = hereHDLMConfiguration('hrn:here:data::olp-here-had:here-hdlm-protobuf-weu-2');
reader = hereHDLMReader(tileID,'Configuration',config);

Прочтите определения ссылок из TopologyGeometry слой плитки карты. Объект возвращенного слоя содержит указанные LinksStartingInTile поле и необходимые поля мозаики отображения, такие как идентификатор мозаики. Другие поля являются пустыми. Данные карты и версия каталога могут отличаться от показанных здесь таковых.

topology = read(reader,'TopologyGeometry','LinksStartingInTile')
topology = 
  TopologyGeometry with properties:

   Data:
                    HereTileId: 378373553
          IntersectingLinkRefs: []
           LinksStartingInTile: [1249×1 struct]
                   NodesInTile: []
    TileCenterHere2dCoordinate: [59.3372 18.0505]

   Metadata:
                       Catalog: 'hrn:here:data::olp-here-had:here-hdlm-protobuf-weu-2'
                CatalogVersion: 5597

  Use plot to visualize TopologyGeometry data.

Найдите начало и конец узлы для каждой ссылки в LinksStartingInTile поле.

startNodes = [topology.LinksStartingInTile.StartNodeId];
endNodesRef = [topology.LinksStartingInTile.EndNodeRef];
endNodes = [endNodesRef.NodeId];

Найдите длину каждой ссылки в метрах.

linkLengths = [topology.LinksStartingInTile.LinkLengthMeters];

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

G = graph(string(startNodes),string(endNodes),double(linkLengths));
H = plot(G,'Layout','force');
title('Undirected Graph')

Укажите начальный и конечный узел, чтобы найти самый короткий путь между ними. Используйте первый и последний узел в графике в качестве начала и конца узлов, соответственно. Наложите узлы на график.

startNode = G.Nodes.Name(1);
endNode = G.Nodes.Name(end);

highlight(H,[startNode endNode],'NodeColor','red','MarkerSize',6)
title('Undirected Graph - Start and End Nodes')

Найдите кратчайший путь между двумя узлами. Постройте график пути.

path = shortestpath(G,startNode,endNode);
highlight(H,path,'EdgeColor','red','LineWidth',2);
title('Undirected Graph - Shortest Path')

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

свернуть все

Вход HDLM reader HERE, заданный как hereHDLMReader объект.

Тип слоя, из которого можно считать данные, заданный как строковый скаляр или вектор символов. layerType должен быть допустимым типом слоев для мозаик карты, хранящихся в reader. Чтобы просмотреть список допустимых слоев, используйте Layers свойство reader.

Пример: "AdasAttributes"

Пример: 'LaneTopology'

Поля объекта слоя, из которых можно считать данные, заданные как строковый скаляр, вектор символов, строковые массивы или массив ячеек из векторов символов. Все поля должны быть допустимыми полями слоя, заданными layerType. Можно задать только поля верхнего уровня этого слоя. Вы не можете задать его поля метаданных.

В возвращенном массиве объектов слоя требуются только поля, такие как HereTileId поле и указанные поля содержат данные. Все остальные поля возвращаются как пустые: [].

Список допустимых полей данных верхнего уровня для каждого типа слоя см. в data выходной аргумент.

Пример: 'LinkAttribution'

Пример: "NodeAttribution"

Пример: ["LinkAttribution" "NodeAttribution"]

Пример: {'LinkAttribution','NodeAttribution'}

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

свернуть все

HERE данные слоя HDLM, возвращенные как массив T-на-1 объектов слоя. T - количество идентификаторов мозаики map, хранящихся в TileIds свойство заданного reader. Каждый объект слоя содержит данные карты, которая имеет тип layerType для плитки карты HERE, которая была прочитана из reader. Такие данные могут включать:

  • Геометрия ссылок (улиц) и узлов (пересечений и тупиков) в плитках карты

  • Различные атрибуты уровня дороги и уровня полосы движения

  • Основанная на ориентирах информация о локализации, такая как барьеры, знаки и столбы вдоль дороги

Объекты слоя также содержат метаданные, указывающие имя каталога и версию каталога, из которой read функция получила данные.

Свойства объектов слоя соответствуют допустимым полям слоя HERE HDLM. В этих объектах слоя имена полей слоев изменяются в соответствии с MATLAB® соглашение об именовании для свойств объекта. Для каждого имени поля слоя первая буква и первая буква после каждого символа подчеркивания капитализируются, а символ подчеркивания удаляются. В этой таблице показаны изменения имен выборок.

HERE Поля слоя HDLMСвойство объекта слоя MATLAB
here_tile_idHereTileId
tile_center_here_2d_coordinateTileCenterHere2dCoordinate
nodes_in_tileNodesInTile

Объектами слоя являются структуры MATLAB, свойства которых соответствуют полям структуры. Для доступа к данным из этих полей используйте запись через точку.

Для примера этот код выбирает NodeId подполе из NodeAttribution поле слоя:

layerData.NodeAttribution.NodeId

В этой таблице перечислены допустимые типы объектов слоев и их поля данных верхнего уровня. Доступные слои предназначены для модели осевой линии дороги, модели маршрута HD и модели локализации HD. Обзор слоев HERE HDLM и моделей, к которым они относятся, см. в HERE HD Live Map Layers.

Объект слояОписаниеПоля данных верхнего уровня (свойства объекта слоя)Поддержка графика
AdasAttributes

Измерения точности геометрии, такие как уклон, повышение и кривизна дорог. Используйте эти данные для разработки усовершенствованных систем помощи драйверам (ADAS).

  • HereTileId

  • LinkAttribution

  • NodeAttribution

Недоступно

ExternalReferenceAttributes

Ссылки на внешние ссылки карты, узлы и топологии для других карт HERE.

  • HereTileId

  • LinkAttribution

  • NodeAttribution

Недоступно

LaneAttributes

Атрибуты уровня маршрута, такие как направление движения и тип маршрута.

  • HereTileId

  • LaneGroupAttribution

Недоступно

LaneGeometryPolyline

3-D маршрута состоит из множества 3-D точек, соединенных полилиниями.

  • HereTileId

  • TileCenterHere3dCoordinate

  • LaneGroupGeometries

Доступно - Используйте plot функция.

LaneRoadReferences

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

  • HereTileId

  • LaneGroupLinkReferences

  • LinkLaneGroupReferences

Недоступно

LaneTopology

Топологии модели HD-маршрута, включая группу маршрутов, соединитель группы маршрутов, соединитель маршрутов и соединитель маршрутов. Этот слой также содержит упрощенную 2-D краевую геометрию модели маршрута для определения сродства плитки карты и переполнения.

  • HereTileId

  • TileCenterHere2dCoordinate

  • LaneGroupsStartingInTile

  • LaneGroupConnectorsInTile

  • IntersectingLaneGroupRefs

Доступно - Используйте plot функция.

LocalizationBarrier

Положения, размерности и атрибуты барьеров, таких как ограждения и джерсийские барьеры, найденные вдоль дорог

  • HereTileId

  • TileCenterHere3dCoordinate

  • Barriers

  • RoadToBarriersReferences

  • IntersectingBarrierRefs

Недоступно

LocalizationPole

Положения, размерности и атрибуты полюсов светофора и других полюсов, обнаруженных вдоль или висящих над дорогами

  • HereTileId

  • TileCenterHere3dCoordinate

  • Signs

  • RoadToSignsReferences

Недоступно

LocalizationSign

Положения, размерности и атрибуты поверхностей дорожных знаков, обнаруженных вдоль дорог

  • HereTileId

  • TileCenterHere3dCoordinate

  • Poles

  • RoadToPolesReferences

Недоступно

RoutingAttributes

Атрибуты дороги, связанные с навигацией и условиями. Эти атрибуты параметрически сопоставлены с 2-D геометрией полилинии на слое топологии.

  • HereTileId

  • LinkAttribution

  • NodeAttribution

  • StrandAttribution

  • AttributionGroupList

Недоступно

RoutingLaneAttributes

Атрибуты и условия основной навигационной полосы, такие как количество полос в дороге. Эти значения параметрически отображаются для 2-D полилиний вдоль дорожных ссылок.

  • HereTileId

  • LinkAttribution

Недоступно

SpeedAttributes

Связанные со скоростью дорожные атрибуты, такие как пределы скорости. Эти атрибуты сопоставлены с 2-D геометрией полилинии слоя топологии.

  • HereTileId

  • LinkAttribution

Недоступно

TopologyGeometry

Топология и 2-D линии геометрия дороги. Этот слой также содержит определения узлов и ссылок в плитке карты.

  • HereTileId

  • TileCenterHere2dCoordinate

  • NodesInTile

  • LinksStartingInTile

  • IntersectingLinkRefs

Доступно - Используйте plot функция.

Введенный в R2019a

[1] Вам необходимо заключить отдельное соглашение с HERE в порядок получения доступа к сервисам HDLM и получения необходимых учетных данных (access_key_id и access_key_secret) для использования сервиса HERE.