Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can find nearest place from current location from given data.

Tags:

android

I have list of location address. from my current location, i need to get the nearest place and have to show it on map. How can i get nearest place from my current location. First i will get my current location lat and long then how i will get nearest place.

Thanks

like image 664
Andy Avatar asked Dec 05 '11 10:12

Andy


2 Answers

First get your current location Lattitude & Longitude, then get Lattitude & Longitude of each locations you have and find out distance of each place from your current location using distanceTo method of Location class and after that find out least distance from your list.

like image 192
anujprashar Avatar answered Nov 02 '22 07:11

anujprashar


You have your current location latitude an longitude so just find out distance between your current location and list of location address geopoints using this formula and display address with shortest distance.

private double distance(double lat1, double lon1, double lat2, double lon2) {
        // haversine great circle distance approximation, returns meters
        double theta = lon1 - lon2;
        double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
                + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
                * Math.cos(deg2rad(theta));
        dist = Math.acos(dist);
        dist = rad2deg(dist);
        dist = dist * 60; // 60 nautical miles per degree of seperation
        dist = dist * 1852; // 1852 meters per nautical mile
        return (dist);
    }

    private double deg2rad(double deg) {
        return (deg * Math.PI / 180.0);
    }

    private double rad2deg(double rad) {
        return (rad * 180.0 / Math.PI);
    }
like image 22
bindal Avatar answered Nov 02 '22 08:11

bindal