首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要MKMapItem方面的帮助

需要MKMapItem方面的帮助
EN

Stack Overflow用户
提问于 2012-12-25 05:43:45
回答 1查看 1.8K关注 0票数 1

我正在使用这段代码来获取当前位置,想要使用这个信息来分享,比如whatsapp。在共享位置按钮点击,我想发送纬度和经度给其他用户。但它的位置完全不同

代码语言:javascript
复制
CLLocationManager *lm = [[CLLocationManager alloc] init];
    lm.delegate = self;
    lm.desiredAccuracy = kCLLocationAccuracyBest;
    lm.distanceFilter = kCLDistanceFilterNone;
    [lm startUpdatingLocation];

    CLLocation *location = [lm location];

    CLLocationCoordinate2D coord = [location coordinate] ;

    Class mapItemClass = [MKMapItem class];
    if (mapItemClass && [mapItemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)])
    {
        // Create an MKMapItem to pass to the Maps app
        CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(coord.longitude, coord.latitude);
        MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:nil];
        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
        [mapItem setName:@"My Place"];
        // Pass the map item to the Maps app
        [mapItem openInMapsWithLaunchOptions:nil];
    }

是否有可能像whatsapp一样显示附近的街道或地方名称来分享。

EN

回答 1

Stack Overflow用户

发布于 2013-01-07 06:41:27

您可以使用CLLocationManagerDelegate更新位置并将其存储在全局变量中。

初始化locationManager为

代码语言:javascript
复制
 _locationManager = [[CLLocationManager alloc] init];
     _locationManager.delegate = _locationObjVC;
     locationManager.desiredAccuracy = kCLLocationAccuracyBest;

 [_locationManager startUpdatingLocation]; // start updating it..

//手柄脱栅

代码语言:javascript
复制
-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
 CLLocation *location = [[CLLocation alloc] initWithLatitude:_userAnnotationPoint.coordinate.latitude longitude:_userAnnotationPoint.coordinate.longitude];
    [_geocoder reverseGeocodeLocation:location completionHandler:
     ^(NSArray *placemarks, NSError *error)
     {
         NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");
         if (error){
             NSLog(@"Geocode failed with error: %@", error);
             //[self displayError:error];
             _userAnnotationPoint.subtitle = [NSString stringWithFormat:@"Lati:%f Long:%f",_userAnnotationPoint.coordinate.latitude,_userAnnotationPoint.coordinate.longitude];
         }
         else
         {
             CLPlacemark *placemark = [placemarks objectAtIndex:0];

             NSLog(@"Received placemarks: %@", [NSString stringWithFormat:@"%@",[[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]]);
             //            clickedAnnotationPoint.subtitle = [NSString stringWithFormat:@"%@ %@ %@ %@ %@ %@ %@ %@ %@",
             //            placemark.ISOcountryCode,placemark.country,placemark.postalCode,placemark.administrativeArea,          placemark.subAdministrativeArea,placemark.locality,placemark.subLocality,placemark.thoroughfare,           placemark.subThoroughfare];
             _userAnnotationPoint.subtitle = [NSString stringWithFormat:@"%@",[[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]];
         }

     }];
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14028033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档