使用新版本的 mapsforge 0.5.1,地图可以通过 onSensorChanged 事件正常旋转。我在 onLocationChanged 事件的 GPS 点添加了一个自定义 GPS 位置标记。当地图旋转时,标记也会旋转以指向设备标题,就像在谷歌地图中使用标记的绘制方法中的以下代码一样。
android.graphics.Canvas androidCanvas = AndroidGraphicFactory.getCanvas(canvas);
androidCanvas.save();
Float px = (float) canvas.getWidth()/2;
Float py = (float) canvas.getHeight()/2;
androidCanvas.rotate(degree, px, py);
canvas.drawBitmap(bitmap, left, top);
androidCanvas.restore();
但是,当拖动地图时,标记的位置会偏离 GPS 位置的前一个点。
如何计算 px 和 py 值以将标记保持在地图上 GPS 位置的精确点,即使地图正在旋转并且标记指向设备航向。