Có một dự án ví dụ đơn giản cho MKAnnotation
không? Tôi không biết phải chuyền cái gì ở "addAnnotation
", vì nó muốn một số "id<Annotation>
". Các ví dụ tại trang web của nhà phát triển là tất cả với mảng hoặc phân tích cú pháp hoặc vì vậy, tôi chỉ cần một ví dụ rất dễ hiểu đầu tiên, làm thế nào toàn bộ công trình hoạt động.MKAnnotation, ví dụ đơn giản
Thanks in advance ..
EDIT:
tôi thiết lập một lớp Pin
. Trong .h nó viết
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface Pin : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subTitle;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic, readonly) NSString *title;
@property (nonatomic, readonly) NSString *subTitle;
- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description;
@end
theo những gì onnoweb trả lời.
Trong Pin.m, tôi thực hiện như thế này, theo ví dụ khác nhau:
#import "Pin.h"
@implementation Pin
@synthesize title, subTitle;
- (CLLocationCoordinate2D) coordinate {
CLLocationCoordinate2D coords;
coords.latitude = coordinate.latitude; //i want it that way
coords.longitude = 7.1352260; //this way it works
return coords;
- (NSString *) title {
return @"Thats the title";
}
- (NSString *) subtitle {
return @"Thats the sub";
}
- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description {
return self;
}
- (void) dealloc {
[super dealloc];
}
@end
Vì vậy, nếu tôi đặt tọa độ bằng tay, như chỉ trong các bình luận, nó hoạt động. Nhưng tôi muốn có thể thiết lập giá trị động như trong bình luận đầu tiên. Tôi đã thử nhiều cách khác nhau, nhưng không ai làm được. Vì bạn không chỉ định một số - (CLLocationCoordinate2D) coordinate
Tôi đã cố gắng tổng hợp coordinate
, nhưng điều đó cũng không hoạt động.
Bạn có thể cho tôi xem MapPin.m của bạn không?
EDIT 2:
tôi đặt mapCenter
như
- (void)viewWillAppear:(BOOL)animated {
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];
CLLocation *curPos = locationManager.location;
location = curPos.coordinate;
CLLocationCoordinate2D mapCenter;
mapCenter.latitude = location.latitude;
mapCenter.longitude = location.longitude;
MKCoordinateSpan mapSpan;
mapSpan.latitudeDelta = 0.005;
mapSpan.longitudeDelta = 0.005;
MKCoordinateRegion mapRegion;
mapRegion.center = mapCenter;
mapRegion.span = mapSpan;
mapKitView.region = mapRegion;
mapKitView.mapType = MKMapTypeStandard;
mapKitView.showsUserLocation=TRUE;
}
Bất cứ điều gì sai với điều đó?
Cảm ơn, điều đó đã giúp khá nhiều. Giống như tôi mới làm gì với google, và bắt đầu chạy, nhưng tôi không hiểu lắm. Vui lòng xem câu hỏi được cập nhật của tôi cho mã tôi có cho đến nay. Tôi không biết những gì .m nên trông giống như .. – Nareille
Xem câu trả lời đã chỉnh sửa của tôi. – onnoweb
Cảm ơn, điều đó đã giúp một lần nữa :) Một câu hỏi cuối cùng cho một số hành vi lạ: Tôi không định nghĩa một cái gì đó như "phối hợp" trong của tôi. H, nhưng Xcode nói với tôi rằng tôi cần phải tổng hợp nó. Nếu tôi làm như vậy, mapCenter của tôi sẽ bị dịch chuyển khoảng vài trăm mét về phía tây. Nếu tôi vượt qua tổng hợp, nó tập trung lại một cách thích hợp. Làm thế nào để thoát khỏi cảnh báo? – Nareille