3

現在、ユーザーの現在の場所を示すマップがあり、いくつかの注釈マーカーもあります(まだ配列に入れていませんが、間もなく作成します)。ユーザーが特定の場所に到達したときにiPhoneアプリがアラートをトリガーするようにしようとしています。それ、どうやったら出来るの?これが私が今持っているものです...

ViewController.h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
#import "MapAnnotation.h"

@interface ViewController : UIViewController <CLLocationManagerDelegate, MKMapViewDelegate>
{
    CLLocationManager *locationManager;
    IBOutlet MKMapView *worldView;


}
@end

ビューコントローラー.m

#import "ViewController.h"


@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [worldView setShowsUserLocation:YES];    

}


- (void)mapView:(MKMapView *)mapView
didUpdateUserLocation:(MKUserLocation *)userLocation
{

    CLLocationCoordinate2D loc = [userLocation coordinate];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
    [worldView setRegion:region animated:YES];  

    MKCoordinateRegion pin = { {0.0, 0.0 }, {0.0, 0.0 } };
    pin.center.latitude = 53.363581;
    pin.center.longitude = -6.258183;
    pin.span.longitudeDelta = 0.01f;
    pin.span.latitudeDelta = 0.01f;
    [worldView setRegion:pin animated:YES];

    MapAnnotation *stage1 = [[MapAnnotation alloc] init];
    stage1.title = @"Quinn's";
    stage1.coordinate = pin.center;
    [worldView addAnnotation:stage1];

    MKCoordinateRegion pin2 = { {0.0, 0.0 }, {0.0, 0.0 } };
    pin2.center.latitude = 53.364678;
    pin2.center.longitude = -6.263009;
    pin2.span.longitudeDelta = 0.01f;
    pin2.span.latitudeDelta = 0.01f;
    [worldView setRegion:pin2 animated:YES];

    MapAnnotation *stage2 = [[MapAnnotation alloc] init];
    stage2.title = @"Neighbour";
    stage2.coordinate = pin2.center;
    [worldView addAnnotation:stage2];
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {
        // Create location manager object
        locationManager = [[CLLocationManager alloc] init];

        // Setting Delegate as AnotherMapFirstViewController
        [locationManager setDelegate:self];

        // And we want it to be as accurate as possible
        // regardless of how much time/power it takes
        [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];

            self.title = NSLocalizedString(@"First", @"First");
            self.tabBarItem.image = [UIImage imageNamed:@"first"];


    }

    return self;
}

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"%@", newLocation);
}

- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error
{
    NSLog(@"Could not find location: %@", error);
}


- (void)dealloc
{
    // Tell the location manager to stop sending us messages
    [locationManager setDelegate:nil];
}


@end
4

1 に答える 1

0

地域の監視を探したいとします。のドキュメントを確認してください-[CLLocationManager startMonitoringForRegion:]

于 2015-04-20T21:34:51.143 に答える