Tôi hiện đang làm việc với MKMapView và tôi đang cố gắng để dữ liệu xuất hiện trên màn hình. Để thực hiện điều này, tôi đã quyết định tạo một MapDataProvider nhỏ để tạo ra một mảng các đối tượng MKAnnotation - mỗi đối tượng chứa một tọa độ với các giá trị vĩ độ và kinh độ ngẫu nhiên.MKMapView Vĩ độ và Kinh độ Tọa độ
Tôi đã đảm bảo rằng MKMapView của tôi được nối với bộ điều khiển và mảng đối tượng MKAnnotation đến từ MapDataProvider của tôi một cách chính xác ... nhưng vì lý do nào đó .. khi tôi thử và xác định tọa độ ở Bắc Mỹ (ví dụ 48, -84) .. không có gì xuất hiện trên MKMapView.
Sau khi chơi xung quanh tôi phát hiện ra rằng bất kỳ giá trị kinh độ nhỏ hơn 0 mang lại cho tôi vấn đề này.
Tôi đã thử xác minh giá trị tọa độ cho từng đối tượng MKAnnotation trong bộ sưu tập của tôi, nhưng CLLocation2DIsValue() tiếp tục trả về false.
Câu hỏi:
gì loạt các giá trị tôi có thể nhập cho vĩ độ và kinh độ cho một CLLocationCoordinate2D để chân của tôi xuất hiện ở Bắc Mỹ?
Để cung cấp cho bối cảnh nhiều hơn một chút, đây là phương pháp được áp dụng trong các MapDataProvider:
+ (NSArray *) getMockMapData {
NSMutableArray *tempMapData = [[NSMutableArray alloc] initWithCapacity:15];
for (int i=0; i< 15; i++) {
double latitude = rand()%20 +50;
double longitude = -107 + rand()%10;
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);
if(CLLocationCoordinate2DIsValid(coord) == NO)
continue;
[tempMapData addObject:[MockMapData
dataForValues:[@"Item " stringByAppendingString:[[NSNumber numberWithInt:i] description]]
subTitle:[@"Item " stringByAppendingString:[[NSNumber numberWithInt:i]description]]
coordinate:coord]];
}
return tempMapData;
}
Vĩ độ có thể từ -90 đến 90 và kinh độ có thể từ -180 đến 180 vì vậy 48, -84 là hợp lệ. Bạn có thể đăng mã để thêm chú thích không? – Anna
Cảm ơn bạn đã trả lời. Sau khi chơi xung quanh với nó một số chi tiết, tôi chuyển ra arcrandom cho rand và thay đổi đó chính xác vấn đề của tôi. – dpalmajr
Cập nhật nguồn với bản sửa lỗi mới nhất. – dpalmajr