Учитывая географическое местоположение из GPS, как найти широту и долготу в пределах заданного радиуса х метров - PullRequest
0 голосов
/ 01 марта 2012

Я писал приложение для Android и мне было интересно, есть ли какой-нибудь API, который помогает подключать широту и долготу, полученные из GPS, а также подключать радиус R, находить новую широту и долготу с очень высокой точностью.Предпочтительно код Java.Например, текущим местоположением является curX, а curY теперь в радиусе 200 метров от этого местоположения может быть maxX и maxY.Поэтому, если у меня есть список записей, я буду печатать только записи в пределах максимального диапазона.Таким образом, чтобы сравнение было правильным, точность должна быть высокой.Есть ли API, который может сделать это?Любая формула?(на Java)

So the function is
findNewLatitude(curLat,curLong,oldList,radius)
{
  do bla bla bla; //Find a newList with respect to current Geo points on MAP  and      considering the radius
}

output: newList such that distance between (lat,long) in newList and 
(curLat,curLong) is  equal to radius

Ответы [ 3 ]

1 голос
/ 01 марта 2012

попробуйте это:

Geocoder coder = new Geocoder(this);
List<Address> address;

try {
    address = coder.getFromLocationName(strAddress,5);
    if (address == null) {
        return null;
    }
    Address location = address.get(0);
    location.getLatitude();
    location.getLongitude();

    p1 = new GeoPoint((int) (location.getLatitude() * 1E6),
                      (int) (location.getLongitude() * 1E6));

     return p1;
}

см. Этот ответ Как узнать название города по координатам широты и долготы в Google Maps?

Как изменитьРасстояние от метра до пикселя?

0 голосов
/ 01 марта 2012
List<Location> filter(Location current, List<Location> locations, int radius) {
    List<Location> results = new ArrayList<Location>();
    for (Location loc : locations) {
        if (current.distanceTo(loc) <= radius) {
            results.add(loc);
        }
    }
    return results;
}
0 голосов
/ 01 марта 2012

Я думаю, вы ищете этот метод:

http://developer.android.com/reference/android/location/Location.html#distanceTo%28android.location.Location%29

Это вычислит расстояние между 2 указанными местоположениями

...