gpt4 book ai didi

android - MapMarker.setCoordinate() 停止更新位置

转载 作者:搜寻专家 更新时间:2023-11-01 08:26:21 24 4
gpt4 key购买 nike

对于自定义 Positionindicator,我使用 Here SDK 提供的 MapMarker。 Location 由 Beacons 获取。在某些时候,我仍然会收到 Beacon 以 GeoCoordinates 形式提供的新位置数据,但是 MapMarker 的定位停止了,它停留在一个位置。过了一会儿,比方说 100 米,它更新了 Position 但随后又卡住了。我在实现过程中错过了什么吗?

  if (mPositionIndicator.getCoordinate() != geoCoordinate) 
mPositionIndicator.setCoordinate(geoCoordinate);

地理坐标每秒或更短时间更新一次。

我可以看到新位置...但是 MapMarker 停留在某个旧位置。

我传递给 map 标记的 geoCoordinate 看起来像这样:new GeoCoordinate(52.xxxxxx , 13.xxxxxx)

我尝试使用 removeMapObject 和 addMapObject 更新位置,但在传递新位置时它仍然不更新。

更新:更多信息。我使用其他一些框架从信标获取位置数据并将此数据设置到 map 标记。

最佳答案

要为 MapMarker 设置新位置,您不必再次调用 addMapObject()。设置新位置就足够了。例如,以下代码将创建一个 MapMarker,它每 100 毫秒不断向北移动:

new Thread() {
public void run() {
try {
while(true) {
if (m_marker == null) {
m_latitude = 52.5;
Image image = new Image();
image.setBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.image));
m_marker = new MapMarker(new GeoCoordinate(m_latitude, 13.4), image);
m_hereMap.addMapObject(m_marker);
}
// move marker north
m_marker.setCoordinate(new GeoCoordinate(m_latitude += 0.00001, 13.4));
sleep(100);
}
} catch (InterruptedException e) {}
}
}.start();

因此我建议隔离问题。使用 Beacons 接收更新的室内位置或 HERE 的 PositioningManager 应该无关紧要。

此外,在您的实现中,比较 GeoCoordinate 实例而不是比较纬度或经度是否不同看起来有点可疑。最好使用 geoCoordinate1.equals(geoCoordinate2)

关于android - MapMarker.setCoordinate() 停止更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com