2013-04-25 2 views
5

Я ищу решение на Android, чтобы проверить, будет ли GPS-точка лежать в заданном наборе местоположения начала и конца GPS или нет. Для примера г-н А начнет с точки X и достигнет точки Z через Y. Теперь, если Mr B дал место P, мы хотим проверить, лежит ли эта точка P на маршруте мистера А или нет.Как найти, будет ли точка GPS лежать в заданном наборе местоположения начала и конца GPS?

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

Я с нетерпением жду ответа от вас!

ответ

0

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

public static float getDistance (float lat1, float lng1, float lat2, float lng2) 
{ 
    double earthRadius = 3958.75; 
    double dLat = Math.toRadians(lat2-lat1); 
    double dLng = 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(dLng/2) * Math.sin(dLng/2); 
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    double dist = earthRadius * c; 

    int meterConversion = 1609; 

    return new Float(dist * meterConversion).floatValue(); 
} 

Теперь вам нужно сравнить значения Lat-Lon вашего господина с одной БД на единицу. Если вы на расстоянии несколько метров, это значит, что г-н А. посетил этот момент. Используя эту логику, вам нужно проверить всю точку GPS г-на А с корнем, хранящимся в вашей БД.

+0

Благодарю Lucifer за ваш ответ. Возможно ли получить все доступные места между двумя точками GPS, используя любой API, такой как API Google Map API? – Supertron

+0

@Supertorn, нет, я так не думаю, вот Начните свой ответ с Успения. – Lucifer

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