hereHDLMReader

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

Описание

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

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

Примечание

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

Создание

Синтаксис

reader = hereHDLMReader(lat,lon)
reader = hereHDLMReader(tileID)
reader = hereHDLMReader(___,Name,Value)

Описание

пример

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, смотрите свойство Configuration.

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Можно задать настройку с помощью или имени каталога или соответствующего имени области. Эта таблица показывает допустимые имена области и их соответствующие производственные имена каталога HERE HDLM.

ОбластьКаталог
'Asia Pacific''here-hdmap-ext-apac-1'
'Eastern Europe''here-hdmap-ext-eeu-1'
'India''here-hdmap-ext-rn-1'
'Middle East And Africa''here-hdmap-ext-mea-1'
'North America''here-hdmap-ext-na-1'
'Oceania''here-hdmap-ext-au-1'
'South America''here-hdmap-ext-sam-1'
'Western Europe''here-hdmap-ext-weu-1'

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

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

Имя папки, на которую загружаются данные 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(fullfile(matlabroot,'examples','driving','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 = 'http://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('Western Europe');
reader = hereHDLMReader(tileID,'Configuration',config);

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

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

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

   Metadata:
                       Catalog: 'here-hdmap-ext-weu-1'
                CatalogVersion: 3117

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

Ограничения

  • Объекты hereHDLMReader не работают над машинами Linux.

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

Советы

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

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

Введенный в R2019a


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