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

1

Я пытаюсь использовать что-то вроде компаса, передавая его значениям долготы/широты, чтобы указать на конкретное местоположение, мой код может рисовать стрелку при перемещении телефона (используя 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;

}
  • 0
    Вы хотите реализовать движущуюся карту?
  • 0
    этот код, кажется, пропускает часть проблемы, потому что он ничего не рисует, и он содержит другие проблемы, такие как цикл while, где был бы уместен if-case
Теги:
drawing
rotation
gps
compass-geolocation

1 ответ

0
Лучший ответ

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню