在 HEREMAPS 中将标记位置动画化到另一个位置
Animate marker location to another in HEREMAPS
目前,我正在开发一个类似于优步的地图应用程序,并且由于我使用的是 Google 的定位服务“间歇线程”,所以我每 10-20-30 秒获取一次用户位置,并在map,通过简单地清理现有的 List ,并在其中插入另一个标记。
这使得用户图标看起来就像在地图上真正地“传送”。
我做了一些研究,但我无法找到示例或在 Heremaps 资源管理器版中可以完成的示例。
我知道我所要做的就是只处理一个对象,而不是清除我的列表并在其中放置另一个对象。
任何帮助将不胜感激,提前致谢。
借助 HERE SDK 的 Explore Edition,您可以使用 MapCamera
的 flyTo()
方法。可以高度自定义两个不同坐标之间的动画速度和类型。
举一个简单的例子,你如何在不“传送”的情况下在两个坐标之间移动:
private void flyTo(GeoCoordinates geoCoordinates) {
GeoCoordinatesUpdate geoCoordinatesUpdate = new GeoCoordinatesUpdate(geoCoordinates);
double bowFactor = 1;
MapCameraAnimation animation =
MapCameraAnimationFactory.flyTo(geoCoordinatesUpdate, bowFactor, Duration.ofSeconds(3));
mapCamera.startAnimation(animation);
}
每当你设置一个新的坐标作为相机的目标时,它会立即切换到那个位置 - 因此它看起来像传送。使用线性(或像上面那样的弓形)动画,它看起来会更平滑,事实上,前一个位置和新位置之间的坐标是“插值”的。
随着 Navigate Edition,还有一个 InterpolationListener
,可用于在使用定位源时提供平滑的插值位置更新。
目前,我正在开发一个类似于优步的地图应用程序,并且由于我使用的是 Google 的定位服务“间歇线程”,所以我每 10-20-30 秒获取一次用户位置,并在map,通过简单地清理现有的 List ,并在其中插入另一个标记。
这使得用户图标看起来就像在地图上真正地“传送”。
我做了一些研究,但我无法找到示例或在 Heremaps 资源管理器版中可以完成的示例。
我知道我所要做的就是只处理一个对象,而不是清除我的列表并在其中放置另一个对象。
任何帮助将不胜感激,提前致谢。
借助 HERE SDK 的 Explore Edition,您可以使用 MapCamera
的 flyTo()
方法。可以高度自定义两个不同坐标之间的动画速度和类型。
举一个简单的例子,你如何在不“传送”的情况下在两个坐标之间移动:
private void flyTo(GeoCoordinates geoCoordinates) {
GeoCoordinatesUpdate geoCoordinatesUpdate = new GeoCoordinatesUpdate(geoCoordinates);
double bowFactor = 1;
MapCameraAnimation animation =
MapCameraAnimationFactory.flyTo(geoCoordinatesUpdate, bowFactor, Duration.ofSeconds(3));
mapCamera.startAnimation(animation);
}
每当你设置一个新的坐标作为相机的目标时,它会立即切换到那个位置 - 因此它看起来像传送。使用线性(或像上面那样的弓形)动画,它看起来会更平滑,事实上,前一个位置和新位置之间的坐标是“插值”的。
随着 Navigate Edition,还有一个 InterpolationListener
,可用于在使用定位源时提供平滑的插值位置更新。