我正在使用安卓版的Mapsforge 0.5。我在地图上添加了一些标记:
map.getLayerManager().getLayers().add(layer);
我正在尝试做的是更改现有图层的位置。我有一个对存储对象的引用,但没有任何方法可以移动标记。该职位只有一个吸物者
layer.getPosition() : LatLong
纬度和经度字段是最终:(我已经通过首先删除层然后再次添加它来解决问题,但这会导致一些额外的协调逻辑。有什么方法可以实际移动图层(标记)吗?
Mapsforge 将图层视为渲染图层、平铺图层、地图叠加层(如标记)等。
默认情况下,抽象类 Layer 定义返回 null 的getPosition()
方法。
从它扩展的一些类(如 TileLayer
)不会修改方法的行为。但是,某些层的扩展类确实会修改它。
对于地图叠加类型,Marker 类使用修改后的 getPosition()
方法从Layer
扩展。私有字段Marker.this.latLong
的价值甚至不是最终的。它接受通过Marker.setLatLong()
方法对Marker.this.latLong
的更改。
如果 Layer 对象确实是 Marker
的实例,则可以将该对象转换为 Marker
。