Chương trình bản đồ

Đối với lập trình di động, điểm hơn những chương trình trên Desktop chính là khả năng thay đổi vị trí của các thiết bị.

Hôm nay tôi sẽ hướng dẫn các bạn viết chương trình theo dõi vị trí đơn giản sử dụng MapKit của Apple:

* Đầu tiên bạn phải thêm các thư viện vào trước rồi mới có thể làm việc được:

– CoreLocation.framework

– MapKit.framework

* Sau đó đưa MKMap vào trong View vừa tạo:

Đây là file .h

#import <UIKit/UIKit.h>

#import <MapKit/MapKit.h>

@interface LKTutViewController : UIViewController <MKMapViewDelegate>

@property (weak, nonatomic) IBOutlet MKMapView *LKMapView;

@end

Sau đây là file .m

#import “LKTutViewController.h”

@interface LKTutViewController ()

@end

@implementation LKTutViewController

– (void)viewDidLoad

{

[super viewDidLoad];

CLLocationCoordinate2D schoolCoor = CLLocationCoordinate2DMake(10.786087, 106.681725);

self.LKMapView.region = MKCoordinateRegionMakeWithDistance(schoolCoor, 200, 200);

if ([CLLocationManager locationServicesEnabled]){

_LKMapView.showsUserLocation = YES;

[_LKMapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];

}

}

– (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

* Trong chương trình có 3 điểm cần lưu ý:

– Outlet dành cho bản đồ là weak không phải strong vì bản đồ không cố định mà luôn cập nhật dữ liệu, vì vậy nền nếu sử dụng strong, chương trình sẽ bị giật trong khi sử dụng weak thì chương trình sẽ chạy mượt hơn nhiều

– Set region sẽ giúp cho Map được zoom lại gần dễ dàng hơn khi sử dụng. Nếu không sử dụng region thì map sẽ ở cấp độ toàn thế giới rất bất tiện khi làm việc.

– Delegate <MKMapViewDelegate> phải được thêm vào ở file .h nếu không bạn sẽ không thể tương tác được với bản đồ của chính bạn

Source code: 

Mediafire: http://www.mediafire.com/?3cbbtm9t8sjf5lp

Google Drive: https://docs.google.com/file/d/0B3v7a0gMgVkBOFI2WTRrc1QxcVU/edit

Tagged: , , , , , , , , , , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: