android - 动态改变transformCenter
问题描述
我正在使用 HERE Android SDK Premium 3.9。我的目标是这样的:
PointF
首先在屏幕上的某个位置显示用户的当前位置- 基于某些条件,我想在屏幕上添加一个“目的地标记”。目标标记位于与当前位置不同的位置。此标记不得位于中心 - 而是必须偏移某个
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);
我究竟做错了什么?
编辑:
显示标记时,当前位置指示器不必“在屏幕上”显示。
解决方案
- 确保您
Map.setTransformCenter(PointF)
使用 valid调用PointF
。X 和 Y 应在[x from 0 to map.getWidth(), y from 0 to map.getHeight()]
范围内。 - Method只是一个 setter,你需要像or
Map.setTransformCenter
一样调用另一个方法。看看它是如何工作的。Map.setCenter()
Map.zoomTo()
在您使用的第二部分的伪代码中hereMap.setCenter(marker.getCoordinate(), Map.Animation.NONE);
,确保您实际导航到新的地理坐标,而不是旧的地理坐标。但实际上,即使您重新导航到旧的地理坐标,它也应该导航到新的地图中心。
我做了一个小要点来展示如何Map.setTransformCenter(PointF)
使用。
推荐阅读
- r - 闭包的R错误对象不可子集
- php - 如何为 html 元素提供一个从 php 变量中获取的 ID?
- c# - 如何让我的 MSTest 像在我“升级”到新型项目文件之前那样在 Visual Studio 中实际运行?
- algorithm - 两个或多个 for 循环时间复杂度
- javascript - 在 Django ModelForm 中创建动态表单字段
- r - 我正在尝试按照创建自己的 R 包的指南说明在 Windows 10 上制作 rcpp 包
- android - 如何使用launchFragmentInHiltContainer将视图模型传递给片段
- arrays - 使用数组从json数组中获取数据?
- mysql - Ubuntu 的 MySQL 工作台中没有模式面板
- mongodb - 创建具有交替 IP 地址的服务器副本集