2011-07-31 2 views
2

위도가 있습니다. & 위치의 경도 데이터입니다. 사용자가 공유를 클릭하고 이메일과 같은 옵션을 선택하면 어떻게 Google지도 링크를 만들 수 있습니까? 하는 .m 파일Google지도가 iOS에서 위치 데이터와 연결되는 방법

.H 파일 여기

@interface locate : UIViewController <CLLocationManagerDelegate,MKMapViewDelegate> 
{ 
    CGPoint gestureStartPoint; 
    CLLocationManager *locationManager; 
    CLLocation  *startingPoint; 

    UILabel *latitudeLabel; 
    UILabel *longitudeLabel; 
    UILabel *altitudeLabel; 
    MKMapView *mapView; 
} 

@property (assign) CGPoint gestureStartPoint; 
@property (nonatomic, retain) CLLocationManager *locationManager; 
@property (nonatomic, retain) CLLocation *startingPoint; 
@property (nonatomic, retain) IBOutlet UILabel *latitudeLabel; 
@property (nonatomic, retain) IBOutlet UILabel *longitudeLabel; 
@property (nonatomic, retain) IBOutlet UILabel *altitudeLabel; 
@property (nonatomic, retain) IBOutlet MKMapView *mapView; 
@end 

// 여기

// 입니다 : 여기

내가 위치 데이터를 얻기 위해 사용하는 코드입니다
#import "locate.h" 


@implementation locate 
@synthesize gestureStartPoint,locationManager,startingPoint,latitudeLabel,longitudeLabel,altitudeLabel,mapView; 


- (void)dealloc 
{ 
    [locationManager release]; 
    [startingPoint release]; 
    [latitudeLabel release]; 
    [longitudeLabel release]; 
    [altitudeLabel release]; 
    [super dealloc]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation { 

    if (startingPoint == nil) 
     self.startingPoint = newLocation; 

    NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g\u00B0", 
           newLocation.coordinate.latitude]; 
    latitudeLabel.text = latitudeString; 
    [latitudeString release]; 

    NSString *longitudeString = [[NSString alloc] initWithFormat:@"%g\u00B0", 
           newLocation.coordinate.longitude]; 
    longitudeLabel.text = longitudeString; 
    [longitudeString release]; 

    NSString *altitudeString = [[NSString alloc] initWithFormat:@"%gm", 
           newLocation.altitude]; 
    altitudeLabel.text = altitudeString; 
    [altitudeString release]; 

} 

- (void)locationManager:(CLLocationManager *)manager 
     didFailWithError:(NSError *)error { 

    NSString *errorType = (error.code == kCLErrorDenied) ? 
    @"Access Denied" : @"Unknown Error"; 
    UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle:@"Error getting Location" 
          message:errorType 
          delegate:nil 
          cancelButtonTitle:@"Okay" 
          otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 

- (void)viewDidLoad 
{ 
    self.locationManager = [[CLLocationManager alloc] init]; 
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    [locationManager startUpdatingLocation]; 
    mapView.delegate = self; 
    mapView.mapType = MKMapTypeStandard; 
    [super viewDidLoad]; 


} 

- (void)viewDidUnload 
{ 
    self.locationManager = nil; 
    self.latitudeLabel = nil; 
    self.longitudeLabel = nil; 
    self.altitudeLabel = nil; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

@end 

이제 Google지도 링크를 만들 때 위치 데이터를 어떻게 사용할 수 있습니까?

답변

1

는 시도이

NSString *googleMapsURLString = [NSString stringWithFormat:@"http://maps.google.com/?saddr=%1.6f,%1.6f&daddr=%1.6f,%1.6f", 
           self.currentLocation.coordinate.latitude, 
           self.currentLocation.coordinate.longitude, 
           longitude, 
           latitude]; 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:googleMapsURLString]]; 
위도와 경도가 관심의 포인트입니다

.

+0

감사합니다, 난 그냥 쓸 수 없습니다 '는 NSString * googleMapsURLString = [있는 NSString stringWithFormat : HTTP : //maps.google.com/maps Q = <내가 여기에 작성해야 무엇을 작성하시기 바랍니다> ]; ' URL을 현재 위치와 함께 추가하면됩니다. –

2

이 코드가 필요합니다.

NSString *googleMapsURLString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%1.6f,%1.6f", 
           newLocation.coordinate.latitude, 
           newLocation.coordinate.longitude]; 

linkMap.text = googleMapsURLString; 
5
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
         [txtf_mapsearch.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]]; 
NSArray *listItems = [locationString componentsSeparatedByString:@","]; 

double latitude = 0.0; 
double longitude = 0.0; 

if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) { 
    latitude = [[listItems objectAtIndex:2] doubleValue]; 
    longitude = [[listItems objectAtIndex:3] doubleValue]; 
} 
else { 
    //Show error 
} 
CLLocationCoordinate2D location; 
location.latitude = latitude; 
location.longitude = longitude; 

return location; 
관련 문제