hereHDLMReader

HD HERE Живой читатель Карты

Описание

Используйте hereHDLMReader возразите, чтобы считать данные о карте высокой четкости для выбранных мозаик карты от HD HERE Живой веб-сервис (HERE HDLM) Карты [1], обеспеченный HERE Technologies. Данные HERE HDLM предоставляют очень подробную информацию и достоверную информацию о среде транспортного средства, такой как дорога и топология маршрута, и подходят для разработки автоматизированных ведущих приложений.

Можно выбрать определенные мозаики карты, из которых можно считать данные или избранные мозаики карты на основе координат ведущего маршрута. Чтобы считать данные о карте для мозаик, используйте read функционируйте и задайте читателя как входной параметр. Для получения дополнительной информации смотрите Рида и Визуализируйте HD HERE Живые Данные о Карте.

Примечание

Использование hereHDLMReader объект требует допустимых учетных данных HERE HDLM. Если вы ранее не настроили учетные данные, диалоговое окно предлагает вам вводить их. Введите Access Key ID и Access Key Secret, что вы получили отсюда Технологии, и нажмите OK.

Создание

Описание

пример

reader = hereHDLMReader(lat,lon) создает читателя HERE HDLM, который может считать данные о карте для мозаик карты HERE, которые соответствуют набору координат широты и долготы. Мозаики карты на уровне изменения масштаба 14.

пример

reader = hereHDLMReader(tileID) создает читателя HERE HDLM, который может считать данные о карте для мозаик карты с заданными идентификаторами мозаики HERE. Эти идентификаторы мозаики хранятся в TileIDs свойство читателя HERE HDLM.

пример

reader = hereHDLMReader(___,Name,Value) устанавливает Configuration, WriteLocation, и CoordinateFormat свойства с помощью одной или нескольких пар "имя-значение". Например, hereHDLMReader(tileID,'Configuration',config) создает читателя, который сконфигурирован, чтобы считать данные о мозаике карты из определенной производственной версии каталога или каталога HERE HDLM, где config hereHDLMConfiguration объект.

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

развернуть все

Широта координирует в виде вектора из действительных значений в области значений [–90, 90].

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

lat и lon должен быть одного размера.

Типы данных: double

Долгота координирует в виде вектора из действительных значений в области значений [–180, 180].

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

lat и lon должен быть одного размера.

Типы данных: double

Идентификаторы мозаики HERE, из которых можно считать данные в виде вектора из 32-битных целых чисел без знака. Эти идентификаторы мозаики хранятся в TileIDs свойство hereHDLMReader объект. Заданные мозаики карты должны все прибыть из того же производственного каталога HERE HDLM.

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

Пример: uint32([386497368 386497369])

Типы данных: uint32

Свойства

развернуть все

Это свойство доступно только для чтения.

Идентификаторы мозаики HERE, из которых можно считать данные в виде вектора из 32-битных целых чисел без знака. Эти мозаики соответствуют любому заданный lat и lon координаты или заданный tileID мозаики.

Пример: uint32([386497368 386497369])

Типы данных: uint32

Это свойство доступно только для чтения.

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

Чтобы считать данные из этих слоев, задайте эти имена слоя как входные параметры к read функция.

Это свойство доступно только для чтения.

Настройка каталога в виде hereHDLMConfiguration объект. Эта настройка содержит определенную версию каталога и каталога HERE HDLM что hereHDLMReader объект считывает данные из.

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

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

Это свойство доступно только для чтения.

Имя папки, на которую данные HERE HDLM загружаются в виде строкового скаляра или вектора символов. Заданная папка должна существовать и иметь полномочия записи.

По умолчанию данные из веб-сервиса HERE HDLM загружаются на временное расположение файла. Это временное расположение файла удалено в конце вашего сеанса MATLAB®.

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

Пример: "C:\Users\myName\HERE"

Тип координатного формата кодировки, чтобы примениться к географическим координатным значениям в виде любого 'geographic' или 'raw'.

ФорматОписаниеПример
'geographic'Координатные значения возвращены как (широта, долгота) пары с десятичными градусами.[42.3743 -71.0266]
'raw'Координатные значения возвращены в координатном формате кодировки по умолчанию сервиса HERE HDLM.int64(5978842261285240832)

Функции объекта

readСчитайте данные о слое HERE HD Live Map
plotОтобразите данные о слое HERE HD Live Map на графике

Примеры

свернуть все

Используйте HD HERE Живая Карта (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 из координат маршрута. Если вы ранее не настроили учетные данные HERE HDLM, диалоговое окно предлагает вам вводить их. Средство чтения содержит данные о карте для двух мозаик карты, которые пересекает маршрут.

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), чтобы считать 3-D данные о геометрии маршрута из мозаики карты. Затем отобразите данные на графике по основной карте OpenStreetMap®.

Создайте читателя HERE HDLM для ID мозаики карты, представляющего область Берлина, Германия. Если вы ранее не настроили учетные данные HERE HDLM, диалоговое окно предлагает вам вводить их.

tileID = uint32(377894435);
reader = hereHDLMReader(tileID);

Добавьте основную карту OpenStreetMap в список basemaps, доступного для использования с сервисом HERE HDLM. После того, как вы добавите основную карту, вы не должны добавлять его снова на будущих сеансах.

name = 'openstreetmap';
url = 'https://a.tile.openstreetmap.org/${z}/${x}/${y}.png';
copyright = char(uint8(169));
attribution = copyright + "OpenStreetMap contributors";
addCustomBasemap(name,url,'Attribution',attribution)

Считайте 3-D данные о геометрии маршрута из LaneGeometryPolyline слой мозаики карты. Постройте геометрию маршрута на openstreetmap основная карта.

laneGeometryPolyline = read(reader,'LaneGeometryPolyline');
gx = plot(laneGeometryPolyline);
geobasemap(gx,'openstreetmap')

Увеличьте масштаб центральной координаты мозаики карты.

latcenter = laneGeometryPolyline.TileCenterHere3dCoordinate.Here2dCoordinate(1);
loncenter = laneGeometryPolyline.TileCenterHere3dCoordinate.Here2dCoordinate(2);

offset = 0.001;
latlim = [latcenter-offset,latcenter+offset];
lonlim = [loncenter-offset,loncenter+offset];

geolimits(latlim,lonlim)

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

Задайте ID мозаики HERE для области Стокгольма, Швеция.

tileID = uint32(378373553);

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

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

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

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')

Ограничения

  • Веб-сервис HERE HDLM определяет географический охват данных о карте. Данные о карте не доступны для всех местоположений.

Советы

  • Чтобы ускорить эффективность читателя, при создании читателя, задают hereHDLMConfiguration объект для Configuration свойство. Этот объект конфигурирует читателя, чтобы искать выбранные мозаики карты только определенный HD HERE Живой производственный каталог Карты. Если вы не задаете объект настройки, когда вы создаете читателя, читатель ищет мозаики карты через все каталоги.

  • Чтобы сохранить учетные данные HERE HDLM между сеансами работы с MATLAB, выберите соответствующую опцию в диалоговом окне HERE HD Live Map Credentials. Чтобы управлять учетными данными HERE HDLM, используйте hereHDLMCredentials функция.

Введенный в R2019a

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