2013-12-21 3 views
0

Я пытаюсь написать простое приложение, которое использует API Google Maps V2 в android. В таймере я читаю длинные значения lat из функции mylocation googleMap.Google Maps Lat/Long Accuracy, V2-Android

altitude = googleMap.getMyLocation().getAltitude(); 
latitude = googleMap.getMyLocation().getLatitude(); 
longitude = googleMap.getMyLocation().getLongitude(); 

Я Подготовленный лат, длинный используя addPolyline() метод.

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

Я использую формулу,

public double calcDistance(double lat1, double lng1, double lat2, 
     double lng2) { 

    int r = 6371; // average radius of the earth in km 
    double dLat = Math.toRadians(lat2 - lat1); 
    double dLon = Math.toRadians(lng2 - lng1); 
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) 
      + Math.cos(Math.toRadians(lat1)) 
      * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon/2) 
      * Math.sin(dLon/2); 
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); 
    double d = r * c; 
    return d; 
} 

Вопросы - Как получить прямую линию, как получить точ- или запас или ошибки, так что при ходьбе по дороге я не попасть в зданиях

ответ

0

В картах есть ошибки, и в показаниях GPS есть ошибки. Рядом с большими зданиями будут увеличиваться ошибки в показаниях GPS из-за заблокированных спутников и многолучевого распространения с видимых спутников. Возможно, вы захотите ограничить свои первоначальные эксперименты в районах без зданий.

Что касается прямых линий, если вам посчастливилось иметь данные карты, вы можете проецировать показания GPS в их ближайших точках на дороге.

+0

будет делать это, но я не получил ответ на мой вопрос – mSO

+0

Понимание шума - хорошее начало его уменьшения. Например, производительность фильтра Калмана зависит от качества указанных моделей шума и движения. Понимание GPS-шума достаточно сложно (например, скачки местоположения из-за изменения выбора спутниковых созвездий GPS), чтобы понять, что поблизости нет больших зданий. Таким образом, ваш поиск, чтобы понять GPS-ошибку будет легче от них. Надеюсь, это поможет. – gregS

0

Если вы полагаетесь исключительно на свое местоположение, возвращенное с местоположения карты Google, которое находится в , а затем зачеркивание, которое вы иногда получаете из-за плохой блокировки GPS, на самом деле вы ничего не можете с этим поделать. Вы более чем можете не использовать местоположение карт Google и использовать Fused location API, чтобы попытаться получить лучшие результаты.

Google Maps API не предоставляет узлов для дорог, так что почти невозможно сказать, насколько далеко точка находится от дороги, чтобы попытаться выпрямить его

+0

Я читаю где-нибудь, я могу использовать фильтры kalman, чтобы удалить шум в показаниях GPS. Как приложения, подобные mapmyrun, делают это правильно. У меня было 2 телефона, а у меня было много раз, а mapmyrun был точно на дороге. – mSO

Смежные вопросы