sirisha
sirisha

Reputation: 171

how to find latitude and longitude of different locatoins in iphone

I am a new iphone developer,please help me to find out latitude and longitude of different locations(present location values, distance 10m form present locatoin)and find address of that locations using that latitude and longituse values.

Upvotes: 1

Views: 2858

Answers (5)

Tariq
Tariq

Reputation: 9979

In order to find out lat & long use this link with complete instruction & sample

http://www.switchonthecode.com/tutorials/getting-your-location-in-an-iphone-application

And in order to get location address using latitude & longitude this can be done by MKReverseGeoCoder.... get in detail using following link

http://blog.objectgraph.com/index.php/2009/04/03/iphone-sdk-30-playing-with-map-kit-part-2/

Upvotes: 1

Rog
Rog

Reputation: 18670

Here's what you need to do:

First, check if location services is enabled:

if ([CLLocationManager locationServicesEnabled])
    [self findUserLocation];

Then in your findUserLocation method, instantiate your CLLocationManager and start receiving updates:

- (void)findUserLocation
{
    CLLocationManager *locationManager_ = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracy{ChooseYourOptionHere};
    [locationManager startUpdatingLocation];
}

You then implement this delegate method, which will get called every time an update is received. Check the current location's accuracy against your desired accuracy (set above), center the map if you are happy with it AND don't forget to stop the location manager from receiving updates:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if ([newLocation horizontalAccuracy] < [manager desiredAccuracy])
    {
        // Accuracy is good enough, let's reverse geocode it
        [manager stopUpdatingLocation];
        [self reverseGeocodeWithCoordinate:newLocation.coordinate];
    }
// else keep trying...
}

Once you're happy with the location accuracy, you can start the reverse geocoding process:

- (void)reverseGeocodeWithCoordinate:(CLLocationCoordinate*)coordinate
{
       MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate];
       geocoder.delegate = self;
       [geocoder start];
}

And you will receive the response via delegate methods:

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error 
{
    geocoder.delegate = nil;
    [geocoder autorelease];
    // Reverse geocode failed, do something
}


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{
     geocoder.delegate = nil;    
     [geocoder autorelease];
     // Reverse geocode worked, do something...
}

Upvotes: 0

ryyst
ryyst

Reputation: 9801

What you want to do is called reverse geocoding. On iOS, this is easily done using MapKit's MKReverseGeocoder.

Upvotes: 0

Mark Mooibroek
Mark Mooibroek

Reputation: 7696

If your new new to Iphone development, you might wanna return that phone and start developing on Android!

Na just kidding, this will work indeed:

    CLLocationCoordinate2D location; location = [mMapView.userLocation coordinate];

    if(iLat && iLng) {    
        location.latitude = [iLat floatValue];
        location.longitude = [iLng floatValue];
    }

Upvotes: 0

Anand
Anand

Reputation: 1983

using mapkit framework you can find the current location along with near by location with their latitude & longitude

CLLocationCoordinate2D location; location = [mMapView.userLocation coordinate];

if(iLat && iLng) {

location.latitude = [iLat floatValue];
location.longitude = [iLng floatValue];
}

Upvotes: 3

Related Questions