在ios中显示用户位置的任何方法

时间:2014-03-12 07:20:08

标签: objective-c ios7 xcode5

是否有任何方法将纬度和经度作为参数和谷歌地图链接或苹果地图链接这三个参数来显示谷歌地图或苹果地图上的用户位置,以便用户可以使用谷歌创建的谷歌地图功能,如箭头方向或放大输入/输出。

我不想使用iOS的MKMapView在我的应用中显示用户位置。

先谢谢,给我任何很酷的方法(纬度,经度,谷歌地图链接)作为参数。

2 个答案:

答案 0 :(得分:0)

仅限坐标,你需要CoreLocation,所以google那个。

但是如果你需要显示地图和箭头,你需要一个地图框架。要么内置MKMapKit,要么下载Google Maps SDK。

答案 1 :(得分:0)

首先,请导入此框架

#import  要导入此框架,您需要选择项目然后进入构建阶段,单击链接二进制文件库并添加核心位置框架

view didload 方法中,在视图控制器中添加此代码: -

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 100 m
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
    [locationManager requestAlwaysAuthorization];
}
[locationManager startUpdatingLocation];

// Mapview的代表

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(newLocation.coordinate, 800, 800);
[map_View setRegion:[map_View regionThatFits:region] animated:YES];
if (newLocation != nil) {
    NSLog(@"%f %f",currentLocation.coordinate.longitude,currentLocation.coordinate.latitude);
    [locationManager stopUpdatingLocation];
    locationManager = nil;
}

// Reverse Geocoding
CLGeocoder *geocoder = [CLGeocoder new];

    dispatch_async(dispatch_get_main_queue(), ^{
        [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
            if (error == nil && [placemarks count] > 0) {
                placemark = [placemarks lastObject];
            } else {
                NSLog(@"%@", error.debugDescription);
            }
        } ];

    });

}

不要忘记在 plist 文件中添加此行: -

<强> NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription