Как изменить ориентацию вида карты для навигации пользователей? - PullRequest
0 голосов
/ 08 февраля 2019

Я внедряю менеджер навигации в javascript для целей обучения, где я хотел бы перемещаться по пользователю на основе рассчитанного маршрута.Если начальная и конечная точки расположены в южном и северном направлениях соответственно, то маркер начальной позиции появится в нижней части viewPort карты, а создатель цели будет отображаться в верхней части по умолчанию.Напротив, предположим следующую ситуацию, когда начальная и конечная точки расположены в северном и южном направлениях соответственно.Я хотел бы изменить ориентацию вида вверх ногами, чтобы сохранить начальную позицию внизу и пункт назначения сверху (аналогично коммерческим приложениям для Android).

Я пробовал два разных метода, чтобы изменить вид с камеры, но не смог добиться этого по следующим причинам.

Method-1: Первый метод основан на startInteraction, который приведен по следующей ссылке, где я не смог найти никаких вариантов для установки угла HEADING

https://developer.here.com/documentation/maps/topics_api/h-map-render-renderengine-interactionmodifiers.html

Код:

var map = new H.Map(...);
var viewPort = map.getViewPort();
viewPort.startInteraction(H.map.render.RenderEngine.InteractionModifiers.HEADING);

Метод-2: Я пытаюсь изменить вид камеры в соответствии с заданным положением, данные об ориентации которого будут обрабатыватьсярендерМетод setCameraData по следующей ссылке прекрасно работает с параметрами zoom, position {H.geo.IPoint} и средство визуализации обновляет карту соответственно.

https://developer.here.com/documentation/maps/topics_api/h-map-viewmodel.html#h-map-viewmodel__setcameradata

Когда я меняю ориентациювиртуальной камеры я не вижу абсолютно никакой разницы в карте, хотя свойства roll, pitch, yaw назначаются с некоторыми значениями (я пробовал как градусы (тип, используемый картами HERE), так и радианы).

Код:

var map = new H.Map(...);
var viewModel = map.getViewModel();
var data = {'zoom': 16, 'position': curLoc, 'pitch': 0, 'yaw': 0, 'roll': 45.0}; // type - {H.map.ViewModel.CameraData}
viewModel.setCameraData(data);

Примечание. Я также пытался обновить вид с помощью метода setViewBounds (), но не смог установить вид карты вверх ногами.

С наилучшими пожеланиями,

Джеяпракаш Раджагопал

1 Ответ

0 голосов
/ 14 февраля 2019

Сам JS API поддерживает только один вид карты, а это означает, что север находится сверху.

...