如何更改地图视图的方向以导航用户?

时间:2019-02-08 11:05:51

标签: javascript here-api

我出于学习目的而在JavaScript中实现了导航管理器,我想根据计算出的路线来导航用户。如果起点和终点分别位于南北方向,则起点的标记将出现在地图的viewPort的底部,默认情况下目标制造商将出现在顶部。相反,假设以下情况,起点和终点分别位于北,南方向。我想上下颠倒地改变视图的方向,以便将开始位置保持在底部,将目的地保持在顶部(类似于商用android应用)。

我尝试了两种不同的方法来更改相机视图,但是由于以下原因,我无法实现它。

方法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,位置{H.geo.IPoint}配合使用时效果很好,渲染器相应地更新了地图。

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

当我更改虚拟相机的方向时,尽管在滚动,俯仰,偏航属性中分配了一些值(我尝试了度数(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()方法更新视图,但无法将地图的视图倒置。

最好的问候,

Jeyaprakash Rajagopal

1 个答案:

答案 0 :(得分:0)

JS API本身仅支持一个地图视图,这意味着北方位于顶部。