Считайте данные о слое HERE HD Live Map
чтения HD HERE Живая Карта [1] (HERE HDLM) данные заданного типа слоя от layerData
= read(reader
,layerType
)hereHDLMReader
возразите и возвращает массив расположенных на слое объектов. Эти расположенные на слое объекты содержат данные о слое карты для мозаик карты HERE, идентификаторы которых соответствуют идентификаторам, сохраненным в TileIds
свойство reader
.
возвращает массив расположенных на слое объектов, содержащих данные только для обязательных полей, таких как layerData
= read(reader
,layerType
,fields
)HereTileId
поле, и для заданных полей. Все другие поля в возвращенных расположенных на слое объектах возвращены как пустые: []
. Если вы не требуете данных из всех полей в расположенных на слое объектах, используйте этот синтаксис, чтобы ускорить производительность этой функции.
Используйте 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), чтобы считать данные о геометрии топологии из мозаики карты. Используйте эти данные, чтобы найти кратчайший путь между двумя узлами в мозаике карты.
Задайте 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')
reader
— Введите читателя HERE HDLMhereHDLMReader
объектВведите читателя HERE HDLM в виде hereHDLMReader
объект.
layerType
— Тип слояfields
— Поля расположенного на слое объектаПоля расположенного на слое объекта, из которых можно считать данные в виде строкового скаляра, вектора символов, массива строк или массива ячеек из символьных векторов. Все поля должны быть допустимыми полями слоя, заданного layerType
. Можно задать только поля верхнего уровня этого слоя. Вы не можете задать его поля метаданных.
В возвращенном массиве расположенных на слое объектов, только обязательные поля, такие как HereTileId
поле и заданные поля содержат данные. Все другие поля возвращены как пустые: []
.
Для списка допустимых полей данных верхнего уровня для каждого типа слоя смотрите data
выходной аргумент.
Пример: 'LinkAttribution'
Пример: "NodeAttribution"
Пример: ["LinkAttribution" "NodeAttribution"]
Пример: {'LinkAttribution','NodeAttribution'}
layerData
— Данные о слое HERE HDLMДанные о слое HERE HDLM, возвращенные как T-by-1 массив расположенных на слое объектов. T является количеством идентификаторов мозаики карты, сохраненных в TileIds
свойство заданного reader
. Каждый расположенный на слое объект содержит данные о карте, которые имеют тип layerType
, поскольку HERE сопоставляет мозаику, которая была считана из reader
. Такие данные могут включать геометрию ссылок (улицы) и узлы (пересечения и тупики) в мозаиках карты, а также различных атрибутах дорожного уровня и уровня маршрута. Расположенные на слое объекты также содержат метаданные, задающие версию каталога и каталога от который read
функция получила данные.
Свойства расположенных на слое объектов соответствуют допустимым полям слоя HERE HDLM. В этих расположенных на слое объектах имена полей слоя изменяются, чтобы соответствовать соглашению о присвоении имен MATLAB® для свойств объектов. Для каждого имени поля слоя, первой буквы и сначала обозначают буквами после каждого подчеркивания использованы для своей выгоды, и символы нижнего подчеркивания удалены. Эта таблица показывает демонстрационные смены имени.
Поля слоя HERE HDLM | Свойство расположенного на слое объекта MATLAB |
---|---|
here_tile_id | HereTileId |
tile_center_here_2d_coordinate | TileCenterHere2dCoordinate |
nodes_in_tile | NodesInTile |
Расположенные на слое объекты являются структурами MATLAB, свойства которых соответствуют полям структуры. К данным о доступе из этих полей используйте запись через точку.
Например, этот код выбирает NodeId
подполе от NodeAttribution
поле слоя:
layerData.NodeAttribution.NodeId
Эта таблица суммирует допустимые типы расположенных на слое объектов и их полей данных верхнего уровня. Доступные слои для Дорожной Модели Средней линии и Модели Маршрута HD. Для обзора слоев HERE HDLM и моделей они принадлежат, видят, что HD HERE Живет Слои Карты.
Расположенный на слое объект | Описание | Поля данных верхнего уровня (свойства расположенного на слое объекта) | Постройте поддержку |
---|---|---|---|
AdasAttributes | Измерения геометрии точности, такие как наклон, вертикальное изменение и искривление дорог. Используйте эти данные, чтобы разработать продвинутые системы помощи водителю (ADAS). |
| Не доступный |
ExternalReferenceAttributes | Ссылки на внешние ссылки карты, узлы и топологию для других карт HERE. |
| Не доступный |
LaneAttributes | Атрибуты уровня маршрута, такие как направление перемещения и типа маршрута. |
| Не доступный |
LaneGeometryPolyline | 3-D геометрия маршрута, состоявшая из набора 3-D точек, к которым соединяют в ломаные линии. |
| Доступный — используют |
LaneRoadReferences | Дорога и ссылки группы маршрута и информация об области значений. Используйте эти данные, чтобы перевести положения между Дорожной Моделью Средней линии и Моделью Маршрута HD. |
| Не доступный |
LaneTopology | Топология модели HD Lane, включая группу маршрута, коннектор группы маршрута, маршрут и топологию коннектора маршрута. Этот слой также содержит упрощенную 2D граничную геометрию модели маршрута для определения сродства мозаики карты и переполнения. |
| Доступный — используют |
RoutingAttributes | Дорожные атрибуты связаны с навигацией и условиями. Эти атрибуты сопоставлены параметрически с 2D полилинейной геометрией в слое топологии. |
| Не доступный |
RoutingLaneAttributes | Базовые атрибуты маршрута навигации и условия, такие как количество маршрутов на дороге. Эти значения сопоставлены параметрически с 2D ломаными линиями вдоль дорожных ссылок. |
| Не доступный |
SpeedAttributes | Связанные со скоростью дорожные атрибуты, такие как ограничения скорости. Эти атрибуты сопоставлены с 2D полилинейной геометрией слоя топологии. |
| Не доступный |
TopologyGeometry | Топология и 2D геометрия линии дороги. Этот слой также содержит определения узлов и ссылок в мозаике карты. |
| Доступный — используют |
hereHDLMConfiguration
| hereHDLMCredentials
| hereHDLMReader
| plot
[1] Необходимо заключить отдельное соглашение с HERE для того, чтобы получить доступ к сервисам HDLM и получить необходимые учетные данные (app_id и app_code) для использования Сервиса HERE.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.