Développement de cartes iOS
Introduction
Les cartes iOS nous aident à localiser notre position. Les cartes iOS utilisent le framework MapKit.
Étapes de l'exemple
1. Créez une application simple basée sur View
2. Sélectionnez le fichier de projet, puis sélectionnez la cible, puis ajoutez MapKit.framework.
3. Ajoutez CoreLocation.framework
4. Ajoutez une vue de carte à ViewController.xib, créez un IBOutlet et nommez-le mapView.
5. Via "File-> New -> File... -> " sélectionnez la classe Objective C pour créer un nouveau fichier, cliquez sur Next
6. Définissez "sub class of" sur NSObject, et nommez la classe MapAnnotation
7. Sélectionnez Create
8. Mettez à jour MapAnnotation.h comme indiqué ci-dessous
#import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface MapAnnotation : NSObject<MKAnnotation> @property (nonatomic, strong) NSString *title; @property (nonatomic, readwrite) CLLocationCoordinate2D coordinate; - (id)initWithTitle:(NSString *)title andCoordinate: (CLLocationCoordinate2D)coordinate2d; @end
9. Mettez à jour MapAnnotation.m comme indiqué ci-dessous
#import "MapAnnotation.h"
@implementation MapAnnotation
-(id)initWithTitle:(NSString *)title andCoordinate:
(CLLocationCoordinate2D)coordinate2d{
self.title = title;
self.coordinate =coordinate2d;
return self;
}
@end
10. Mettez à jour ViewController.h comme indiqué ci-dessous
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<MKMapViewDelegate>
{
MKMapView *mapView;
}
@end
11. Mettez à jour ViewController.m comme indiqué ci-dessous
#import "ViewController.h"
#import "MapAnnotation.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
mapView = [[MKMapView alloc]initWithFrame:
CGRectMake(10, 100, 300, 300)];
mapView.delegate = self;
mapView.centerCoordinate = CLLocationCoordinate2DMake(37.32, -122.03);
mapView.mapType = MKMapTypeHybrid;
CLLocationCoordinate2D location;
location.latitude = (double) 37.332768;
location.longitude = (double) -122.030039;
// Add the annotation to our map view
MapAnnotation *newAnnotation = [[MapAnnotation alloc]
initWithTitle:@"Apple Head quaters" andCoordinate:location];
[mapView addAnnotation:newAnnotation];
CLLocationCoordinate2D location2;
location2.latitude = (double) 37.35239;
location2.longitude = (double) -122.025919;
MapAnnotation *newAnnotation2 = [[MapAnnotation alloc]
initWithTitle:@"Test annotation" andCoordinate:location2];
[mapView addAnnotation:newAnnotation2];
[self.view addSubview:mapView];
}
// When a map annotation point is added, zoom to it (1500 range)
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance
([mp coordinate], 1500, 1500);
[mv setRegion:region animated:YES];
[mv selectAnnotation:mp animated:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Sortie
Lors de l'exécution de l'application, le résultat de sortie est le suivant

Lorsque nous faisons défiler la carte vers le haut, le résultat de sortie est le suivant
