У меня есть картографическое приложение, использующее внутренний движок карт на Android.Я работаю над вращающимся представлением карты, которое поворачивает карту в зависимости от ориентации телефона с помощью службы датчиков.Все работает нормально, за исключением перетаскивания карты, когда телефон указывает на север, кроме.Например, если телефон направлен на запад, перетаскивание карты вверх по-прежнему перемещает карту на юг против востока, как и следовало ожидать.Я предполагаю, что перевод холста - одно из возможных решений, но я, честно говоря, не уверен, что правильный способ сделать это.
Вот код, который я использую для вращения холста:
public void dispatchDraw(Canvas canvas)
{
canvas.save(Canvas.MATRIX_SAVE_FLAG);
// mHeading is the orientation from the Sensor
canvas.rotate(-mHeading, origin[X],origin[Y]);
mCanvas.delegate = canvas;
super.dispatchDraw(mCanvas);
canvas.restore();
}
Каков наилучший способ сделать перетаскивание карты согласованным независимо от ориентации телефона?У Sensormanager есть метод remapcoordinates (), но не ясно, что это решит мою проблему.