简体   繁体   中英

Given the geo location from the GPS, how to find the latitude and longitude within a given x meter radius

I was writing an android app and I was wondering if there is any API that helps to plugin a latitude and longitude obtained from the GPS and also plugin a radius R, find the new latitude and longitude with a very high precision. Preferably a Java code. So say for example the current location is curX and curY now within 200 meter radius of this location can be maxX and maxY. So if I have a list of entries, I will print only the entries within the max Range. So for comparison to be right, the precision should be high. Is there any API that can do this? Any formula? (in 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

try this :

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;
}

see this answer How to get city name from latitude and longitude coordinates in Google Maps?

How to change 1 meter to pixel distance?

I guess you are looking for this method:

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

This will compute distance between 2 given locations

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;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM