Rodar o MapView no Android
Estou escrevendo um aplicativo para Android em que um dos recursos é que o mapa girará de acordo com a bússola (ou seja, se o telefone estiver apontando para o leste, o mapa será orientado de modo que o lado leste do mapa fique no topo). Respostas anteriores que eu encontrei sugeridas sobre a escrita do método onDraw () no mapView, no entanto, a API mudou o método para final assim não pode ser substituído. Como resultado, tentei substituir odispatchDraw()
método assim:
Nota:
-compass é um booleano que, se verdadeiro, gira a visão
-bearing é uma variável flutuante que possui os graus que a vista deve girar
protected void dispatchDraw(Canvas canvas) {
canvas.save();
if (compass) {
final float w = this.getWidth();
final float h = this.getHeight();
final float scaleFactor = (float)(Math.sqrt(h * h + w * w) / Math.min(w, h));
final float centerX = w / 2.0f;
final float centerY = h / 2.0f;
canvas.rotate(bearing, centerX, centerY);
canvas.scale(scaleFactor, scaleFactor, centerX, centerY);
}
super.dispatchDraw(canvas);
canvas.restore();
}