android - 动态改变 transformCenter

标签 android here-api

我使用的是 HERE Android SDK Premium 3.9。我的目标是:

  1. 首先在屏幕上的某个 PointF 处显示用户的当前位置
  2. 基于某些条件,我想在屏幕上添加一个“目的地标记”。目的地标记位于与当前位置不同的位置。此标记不得位于中心 - 而是必须偏移某个 PointF

我没能做到这一点。我可以为初始“当前位置”使用一次 setTransformCenter 并且它生效。但是,如果我再次调用它,它似乎并没有生效。我在第 2 步中添加的标记从来没有在正确的位置。

这是一些伪代码:

hereMap.setTransformCenter(positionIndicatorPoint);

GeoCoordinate markerCoordinate = getMarkerCoordinates();
MapMarker marker = new MapMarker();
marker.setCoordinate(markerCoordinate);


hereMap.setTransformCenter(mapMarkerPoint);
hereMap.addMapObject(marker);
hereMap.setCenter(marker.getCoordinate(), Map.Animation.NONE);

我做错了什么?

编辑:

当显示标记时,当前位置指示器不必“在屏幕上”。

最佳答案

  1. 确保使用有效的 PointF 调用 Map.setTransformCenter(PointF)。 X 和 Y 应在 [x 从 0 到 map.getWidth(),y 从 0 到 map.getHeight()] 范围内。
  2. 方法 Map.setTransformCenter 只是一个 setter ,您需要调用另一个方法,如 Map.setCenter()Map.zoomTo()。看看它是如何工作的。

在第二部分的伪代码中,您使用 hereMap.setCenter(marker.getCoordinate(), Map.Animation.NONE);,确保您实际导航到新的地理坐标,而不是旧的。但实际上,即使您重新导航到旧的地理坐标,它也应该导航到新的 map 中心。

我做了小gist展示如何使用 Map.setTransformCenter(PointF)

关于android - 动态改变 transformCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513961/

相关文章:

android - 如何在 Android 上找到 cpu 型号名称

google-maps - 从谷歌地图或其他 map 提供商获取移动应用程序中给定路线的收费数据

使用Charles的Android手机无法连接互联网

ios - 尝试在 Here Explore for iOS 中为 map 标记创建 MapImage 实例会出现奇怪的错误

android - 在 Here map sdk 中加速 BOW/LINEAR 动画

jquery - 在Here API(GEO FENCING)中动态传递路线路径和栅栏路径以跟踪目标

javascript - 使用此处的 map 对噪声标记使用不同的颜色

android - 如何使android的数字编辑文本类似于DatePickerDialog上的向上/向下按钮?

android - AsyncTask 在使用 SherlockFragments 更改选项卡时再次启动

单独窗口中的 Android Studio 模拟器