How to get Latitude,Longitude of two cities and Calculate Distance in iphone

H

import Framework
CoreLocation.framework
MapKit.framework

 
//————————————————————————
#import “ViewController.h”
#import <MapKit/MapKit.h>
 
NSMutableArray *citynamearray;
NSMutableArray *latarray,*longarray;
 

//————————————————————————
#import “ViewController.m”
– (void)viewDidLoad
{
[super viewDidLoad];
citynamearray = [[NSMutableArray alloc]init];
 
latarray = [[NSMutableArray alloc]init];
longarray =[[NSMutableArray alloc]init];
 
[citynamearray addObject:CityName1];
[citynamearray addObject:CityName2];
 
for (int i = 0; i < [citynamearray count]; i++)
{
NSString *urlpath = [NSString stringWithFormat:@”http://maps.googleapis.com/maps/api/geocode/json?address=%@&sensor=true”,[citynamearray objectAtIndex:i]];
 
NSURL *path = [NSURL URLWithString:urlpath];
NSData* data = [NSData dataWithContentsOfURL:path];
[self performSelectorOnMainThread:@selector(fetchedLatLong:) withObject:data waitUntilDone:YES];
}
 
[self CalculateDistance :[latarray objectAtIndex:0]  :[longarray objectAtIndex:0]  :[latarray objectAtIndex:1] :[longarray objectAtIndex:1]];
}
 
– (void)fetchedLatLong:(NSData *)responseData
{
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
 
NSArray *items = [json objectForKey:@”results”];
 
NSArray *items1 = [items valueForKey:@”geometry”];
NSArray *items2 = [items1 valueForKey:@”location”];
 
NSString *latlongstr = [NSString stringWithFormat:@”%@”,[items2 objectAtIndex:0]];
latlongstr = [latlongstr stringByReplacingOccurrencesOfString:@” ” withString:@””];
latlongstr = [latlongstr stringByReplacingOccurrencesOfString:@”n” withString:@””];
latlongstr = [latlongstr stringByReplacingOccurrencesOfString:@”}” withString:@””];
 
NSArray *latlngarr = [latlongstr componentsSeparatedByString:@”;”];
NSString *lat = [NSString stringWithFormat:@”%@”,[latlngarr objectAtIndex:0]];
lat = [lat stringByReplacingOccurrencesOfString:@”{lat=”” withString:@””];
lat = [lat stringByReplacingOccurrencesOfString:@””” withString:@””];
 
NSString *lng = [NSString stringWithFormat:@”%@”,[latlngarr objectAtIndex:1]];
lng = [lng stringByReplacingOccurrencesOfString:@”lng=”” withString:@””];
lng = [lng stringByReplacingOccurrencesOfString:@””” withString:@””];
 
[latarray addObject:lat];
[longarray addObject:lng];
 
NSLog(@”Lat %@ Long%@=”,latarray,longarray);
}
 
– (void) CalculateDistance : (NSString *)a : (NSString *)b :(NSString *)c :(NSString *)d
{
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:[a floatValue] longitude:[b floatValue]];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:[c floatValue] longitude:[d floatValue]];
 
NSString *Distance = [NSString stringWithFormat:@”Distance :%f meters”,[location1 distanceFromLocation:location2] * 0.001];
NSLog(@”Distance =%@”,Distance);
 
[location1 release];
[location2 release];
}

About the author

abdulgafar.nurbash
By abdulgafar.nurbash

Category