iphone当前位置没有显示

时间:2011-07-16 09:46:14

标签: iphone ios cocoa-touch mapkit cllocationmanager

我在iphone MapKit上需要帮助! 我使用界面构建器创建了一个简单的mapview,并将show user location设置为yes。 但是,我的部署itouch上没有显示“蓝点”!我需要帮助!

此外,任何人都可以建议我如何获取用户当前位置并绘制到另一个位置的路线? 我们没有像苹果地图应用程序那样使用官方API吗?绘制路线。

非常感谢你!

我的代码。

viewDidLoad中

- (void)viewDidLoad {
    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [locationManager startUpdatingLocation];
    [super viewDidLoad];
}

的LocationManager:didUpdateToLocation:fromLocation:

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

    [mapView setMapType:MKMapTypeStandard];
    mapView.showsUserLocation = YES;

    MKCoordinateRegion region;

    CLLocationCoordinate2D location;
    location.latitude = newLocation.coordinate.latitude;
    location.longitude = newLocation.coordinate.longitude;

    region.center = location;
    region.span.longitudeDelta = 0.02;
    region.span.latitudeDelta = 0.02;
    [mapView setRegion:region animated:YES]; 
    [mapView setDelegate:self];
}

2 个答案:

答案 0 :(得分:1)

对于第2点:如果您希望该节目包含地图的路线(因此您的应用程序在后台进行),请使用:

NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",fromLocation.latitude, fromLocation.longitude,toLocation.latitude,toLocation.longitude];
            [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];

如果您想在MKMapview中绘制路线,我建议您查看此https://github.com/kishikawakatsumi/MapKit-Route-Directions

我不知道第1点,您是否在设置中激活了位置服务?

答案 1 :(得分:0)

你在下面的方法中写了什么?它负责在用户当前位置放置蓝点或引脚。

注意:我只是复制粘贴我的代码,因此您需要根据需要进行修改。简而言之,如果注释是用户的当前位置,则只需返回视图nil。然后它会在用户当前位置的中心自动显示蓝点。

- (MKAnnotationView *)mapView:(MKMapView *)MapView viewForAnnotation:(id<MKAnnotation>)annotation
{
MKPinAnnotationView *view = nil;

if(annotation !=mapview.userLocation){
    view = (MKPinAnnotationView *) 
    [mapview dequeueReusableAnnotationViewWithIdentifier:@"identifier"]; 
    if(nil == view) { 
        view = [[[MKPinAnnotationView alloc] 
                 initWithAnnotation:annotation reuseIdentifier:@"identifier"] 
                autorelease];           
    }
    [view setPinColor:MKPinAnnotationColorPurple];
    UIButton *btnViewVenue = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    btnViewVenue.frame = CGRectMake(0, 0, 30, 30);
    view.rightCalloutAccessoryView=btnViewVenue;
    view.pinColor = MKPinAnnotationColorGreen;
    view.enabled = YES;
    view.canShowCallout = YES;
    view.multipleTouchEnabled = NO;
    view.animatesDrop = YES;
    }       
return view;
}

关于两个位置之间的绘制路线的第二点。因此,据我所知,直到您手动绘制线条并且所有路线都有坐标,才能正式显示MapKit中两个位置之间的路线。

希望得到这个帮助。