gpt4 book ai didi

android - 如何在 Android 中移动 Mapsforge 图层(标记)

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

我正在使用 Mapsforge 0.5 for android。我在 map 上添加了一些标记:

map.getLayerManager().getLayers().add(layer);

我想做的是改变现有图层的位置。我有一个对存储对象的引用,但没有任何方法可以移动标记。该位置只有一个getter

layer.getPosition() : LatLong

LatLong 的纬度和经度字段是最终的 :( 我已经解决了这个问题,方法是先删除图层然后再次添加它,但这会导致一些额外的协调逻辑。有什么方法我可以实际移动图层(标记)?

最佳答案

Mapsforge 将层视为渲染层、图 block 层、 map 覆盖层(如标记)等。

抽象类Layer默认情况下,定义返回 null 的 getPosition() 方法。

一些从它扩展的类,如 TileLayer 不会修改该方法的行为。但是,某些 Layer 的扩展类确实对其进行了修改。

在你的例子中, map 覆盖类型,Marker类从 Layer 扩展而来,并修改了 getPosition() 方法。私有(private)字段 Marker.this.latLong 的值甚至不是最终值。它通过 Marker.setLatLong() 方法接受对 Marker.this.latLong 的更改。

如果Layer 对象确实是Marker 的一个实例,您可以将该对象转换为Marker

关于android - 如何在 Android 中移动 Mapsforge 图层(标记),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27816679/

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