Угол между двумя известными геолокациями андроида - PullRequest
2 голосов
/ 31 мая 2011

Я хочу найти угол между двумя известными геолокациями. В основном я хочу направить стрелку, точка хвоста которой находится в моем текущем местоположении, а головка стрелки указывает на фиксированную геолокацию. Поэтому я думаю, что если каким-то образом я смогу определить угол между этими двумя геолокациями, то, вероятно, я смогу сделать то же самое.

У вас, ребята, есть предложения, как сделать это лучше. Любая помощь будет оценена.

Ответы [ 4 ]

4 голосов
/ 31 мая 2011

Обратитесь к этому, объяснено несколько подходов.

Как рассчитать азимут (угол к северу) между двумя координатами WGS84

2 голосов
/ 11 сентября 2013

Я хотел добиться того же.используя эту ссылку для вычисления угла следующим образом:

private double angleFromCoordinate(double lat1, double long1, double lat2,
        double long2) {

    double dLon = (long2 - long1);

    double y = Math.sin(dLon) * Math.cos(lat2);
    double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
            * Math.cos(lat2) * Math.cos(dLon);

    double brng = Math.atan2(y, x);

    brng = Math.toDegrees(brng);
    brng = (brng + 360) % 360;
    brng = 360 - brng;

    return brng;
}

и затем поверните ImageView на этот угол

private void rotateImage(ImageView imageView, double angle) {

    Matrix matrix = new Matrix();
    imageView.setScaleType(ScaleType.MATRIX); // required
    matrix.postRotate((float) angle, imageView.getDrawable().getBounds()
            .width() / 2, imageView.getDrawable().getBounds().height() / 2);
    imageView.setImageMatrix(matrix);
}
0 голосов
/ 31 мая 2011

Я не уверен, что понимаю, что вы хотите сделать, но проверьте это: Справочник по Android, Местоположение, distanceBetween (double startLatitude, double startLongitude, double endLatitude, double endLongitude, float [] результаты)

Параметр результатов должен быть массивом с плавающей точкой - не менее 2 элементов.Затем в результатах [0] вы найдете расстояние и в результатах 1 отношение между этими двумя точками.Что важно "Расстояние и пеленг определяются с помощью эллипсоида WGS84."

0 голосов
/ 31 мая 2011

Это простой триг, правда.Если они достаточно близко друг к другу, вы можете просто использовать геометрию плоскости.Возьмите два местоположения, определите прямоугольный треугольник, который имеет два местоположения как острые углы, и вычислите.

Уже есть ссылка на основную математику.

Одна вещь - если места очень далеко друг от друга, вы захотите использовать сферический триггер, иначе углы будут неточными.

Ну, там была ссылка ... http://www.easycalculation.com/trigonometry/triangle-angles.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...