Поворот изображения в Android с использованием значений GPS, указывающих на определенное место

Я пытаюсь использовать что-то вроде компаса, передавая ему значения долготы/широты, чтобы он указывал на определенное место, мой код может рисовать стрелку при перемещении телефона (используя GPS), чтобы определить местоположение.

Я хочу использовать изображение вместо рисунка

public void draw(Canvas canvas) {
        double angle = calculateAngle(currentLongitude, currentLatitude, targetLongitude, targetLatitude);
        //Correction;
        angle-=90;

    //Correction for azimuth
    angle-=azimuth;

    if((getContext() instanceof Activity) && ((Activity)getContext()).getWindowManager().getDefaultDisplay().getOrientation()==Configuration.ORIENTATION_PORTRAIT)angle-=90;

    while(angle<0)angle=angle+360;

    Rect rect = canvas.getClipBounds();

    int height = rect.bottom-rect.top;
    int width = rect.right-rect.left;
    int left = rect.left;
    int top = rect.top;

}

person Reham    schedule 17.12.2011    source источник
comment
Хотите реализовать движущуюся карту?   -  person menjaraz    schedule 17.12.2011
comment
в этом коде, похоже, отсутствует часть проблемы, потому что он ничего не рисует И содержит другие проблемы, такие как цикл while, где уместно было бы использовать if-case.   -  person NikkyD    schedule 17.12.2011


Ответы (1)


Вам нужно сделать две вещи:

  1. Повернуть изображение указателя
  2. Нарисуйте полученное растровое изображение на экране.

Несколько трюков, возможно, будет быстрее предварительно повернуть изображение при запуске вашей программы, чем вращать его каждый раз, когда вы рисуете; однако это также потребует больше памяти.

person Lie Ryan    schedule 20.12.2011