如何在 Android 中移动 Mapsforge 图层(标记)
How to move a Mapsforge Layer (Marker) in Android
我正在为 android 使用 Mapsforge 0.5。我在地图上添加了一些标记:
map.getLayerManager().getLayers().add(layer);
我想做的是更改现有图层的位置。我有一个对存储对象的引用,但没有任何方法可以移动标记。该位置只有一个吸气剂
layer.getPosition() : LatLong
LatLong 的纬度和经度字段是最终的:( 我已经通过先删除图层然后再次添加来解决问题,但这会导致一些额外的协调逻辑。有什么方法可以实际移动图层(标记)?
Mapsforge 将层视为渲染层、图块层、地图覆盖层(如标记)等。
摘要 class Layer 默认将 getPosition()
方法定义为 return null。
一些class是从它扩展而来的,比如TileLayer
不会修改方法的行为。但是,某些图层的扩展 classes 确实会对其进行修改。
在您的情况下,地图覆盖类型 Marker class 从 Layer
扩展而来,并使用修改后的 getPosition()
方法。私有字段 Marker.this.latLong
的值甚至不是最终值。它通过 Marker.setLatLong()
方法接受对 Marker.this.latLong
的更改。
前提是Layer对象真的是Marker
的一个实例,你可以将对象转换为Marker
。
我正在为 android 使用 Mapsforge 0.5。我在地图上添加了一些标记:
map.getLayerManager().getLayers().add(layer);
我想做的是更改现有图层的位置。我有一个对存储对象的引用,但没有任何方法可以移动标记。该位置只有一个吸气剂
layer.getPosition() : LatLong
LatLong 的纬度和经度字段是最终的:( 我已经通过先删除图层然后再次添加来解决问题,但这会导致一些额外的协调逻辑。有什么方法可以实际移动图层(标记)?
Mapsforge 将层视为渲染层、图块层、地图覆盖层(如标记)等。
摘要 class Layer 默认将 getPosition()
方法定义为 return null。
一些class是从它扩展而来的,比如TileLayer
不会修改方法的行为。但是,某些图层的扩展 classes 确实会对其进行修改。
在您的情况下,地图覆盖类型 Marker class 从 Layer
扩展而来,并使用修改后的 getPosition()
方法。私有字段 Marker.this.latLong
的值甚至不是最终值。它通过 Marker.setLatLong()
方法接受对 Marker.this.latLong
的更改。
前提是Layer对象真的是Marker
的一个实例,你可以将对象转换为Marker
。