Читайте ЗДЕСЬ HD Live Map данные слоя
читает ЗДЕСЬ HD Live Map[1] (HERE HDLM) данные заданного типа слоя от layerData
= read(reader
,layerType
)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')
reader
- Вход HDLM readerhereHDLMReader
объектВход HDLM reader HERE, заданный как hereHDLMReader
объект.
layerType
- Тип слояТип слоя, из которого можно считать данные, заданный как строковый скаляр или вектор символов. layerType
должен быть допустимым типом слоев для мозаик карты, хранящихся в reader
. Чтобы просмотреть список допустимых слоев, используйте Layers
свойство reader
.
Пример: "AdasAttributes"
Пример: 'LaneTopology'
fields
- Поля объекта слояПоля объекта слоя, из которых можно считать данные, заданные как строковый скаляр, вектор символов, строковые массивы или массив ячеек из векторов символов. Все поля должны быть допустимыми полями слоя, заданными layerType
. Можно задать только поля верхнего уровня этого слоя. Вы не можете задать его поля метаданных.
В возвращенном массиве объектов слоя требуются только поля, такие как HereTileId
поле и указанные поля содержат данные. Все остальные поля возвращаются как пустые: []
.
Список допустимых полей данных верхнего уровня для каждого типа слоя см. в data
выходной аргумент.
Пример: 'LinkAttribution'
Пример: "NodeAttribution"
Пример: ["LinkAttribution" "NodeAttribution"]
Пример: {'LinkAttribution','NodeAttribution'}
layerData
- ЗДЕСЬ данные слоя HDLMHERE данные слоя HDLM, возвращенные как массив T-на-1 объектов слоя. T - количество идентификаторов мозаики map, хранящихся в 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 и модели локализации HD. Обзор слоев HERE HDLM и моделей, к которым они относятся, см. в HERE HD Live Map Layers.
Объект слоя | Описание | Поля данных верхнего уровня (свойства объекта слоя) | Поддержка графика |
---|---|---|---|
AdasAttributes | Измерения точности геометрии, такие как уклон, повышение и кривизна дорог. Используйте эти данные для разработки усовершенствованных систем помощи драйверам (ADAS). |
| Недоступно |
ExternalReferenceAttributes | Ссылки на внешние ссылки карты, узлы и топологии для других карт HERE. |
| Недоступно |
LaneAttributes | Атрибуты уровня маршрута, такие как направление движения и тип маршрута. |
| Недоступно |
LaneGeometryPolyline | 3-D маршрута состоит из множества 3-D точек, соединенных полилиниями. |
| Доступно - Используйте |
LaneRoadReferences | Ссылки на группы дорог и маршрутов и информация о области значений. Используйте эти данные для перемещения положения между моделью осевой линии дороги и моделью HD маршрута. |
| Недоступно |
LaneTopology | Топологии модели HD-маршрута, включая группу маршрутов, соединитель группы маршрутов, соединитель маршрутов и соединитель маршрутов. Этот слой также содержит упрощенную 2-D краевую геометрию модели маршрута для определения сродства плитки карты и переполнения. |
| Доступно - Используйте |
LocalizationBarrier | Положения, размерности и атрибуты барьеров, таких как ограждения и джерсийские барьеры, найденные вдоль дорог |
| Недоступно |
LocalizationPole | Положения, размерности и атрибуты полюсов светофора и других полюсов, обнаруженных вдоль или висящих над дорогами |
| Недоступно |
LocalizationSign | Положения, размерности и атрибуты поверхностей дорожных знаков, обнаруженных вдоль дорог |
| Недоступно |
RoutingAttributes | Атрибуты дороги, связанные с навигацией и условиями. Эти атрибуты параметрически сопоставлены с 2-D геометрией полилинии на слое топологии. |
| Недоступно |
RoutingLaneAttributes | Атрибуты и условия основной навигационной полосы, такие как количество полос в дороге. Эти значения параметрически отображаются для 2-D полилиний вдоль дорожных ссылок. |
| Недоступно |
SpeedAttributes | Связанные со скоростью дорожные атрибуты, такие как пределы скорости. Эти атрибуты сопоставлены с 2-D геометрией полилинии слоя топологии. |
| Недоступно |
TopologyGeometry | Топология и 2-D линии геометрия дороги. Этот слой также содержит определения узлов и ссылок в плитке карты. |
| Доступно - Используйте |
hereHDLMConfiguration
| hereHDLMCredentials
| hereHDLMReader
| plot
[1] Вам необходимо заключить отдельное соглашение с HERE в порядок получения доступа к сервисам HDLM и получения необходимых учетных данных (access_key_id и access_key_secret) для использования сервиса HERE.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.