2011-01-04 38 views
6

Tôi có một plist với từ điển của mảng với tọa độ (được lưu trữ dưới dạng chuỗi).tạo CLLocationCoordinate2D từ mảng

Tôi muốn tạo CLLocationCoordinate2D từ mọi mảng và vẽ lớp phủ cho bản đồ.

tôi đã làm điều đó -

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"Roots" ofType:@"plist"]; 
    NSDictionary *pointsDic = [[NSDictionary alloc] initWithContentsOfFile:thePath]; 

NSArray *pointsArray = [NSArray arrayWithArray:[pointsDic objectForKey:@"roade1"]]; 

CLLocationCoordinate2D pointsToUse[256]; 

for(int i = 0; i < 256; i++) { 
    CGPoint p = CGPointFromString([pointsArray objectAtIndex:i]); 
    pointsToUse[i] = CLLocationCoordinate2DMake(p.x,p.y); 
    NSLog(@"coord %f",pointsToUse [i].longitude); 
    NSLog(@"coord %f",pointsToUse [i].latitude); 

} 

MKPolyline *myPolyline = [MKPolyline polylineWithCoordinates:pointsToUse count:256]; 

[[self mv] addOverlay:myPolyline]; 

nhưng ứng dụng được đâm mà không cần bất kỳ lỗi. (BTW khi tôi xóa phương thức addOverLay mà ứng dụng không bị lỗi).

Tôi có 2 thắc mắc nào

  1. am i làm gì sai?
  2. Tôi đã cố gắng để thiết lập pointsArray đếm như là đối số cho CLLocationCoordinate2D như thế -

    CLLocationCoordinate2D pointsToUse [pointsArray đếm];

Và tôi đang gặp lỗi. Làm thế nào tôi có thể đặt CLLocationCoordinate2D động?

Cảm ơn bạn đã được trợ giúp. Shani

+0

Ứng dụng iOS không bao giờ gặp sự cố mà không có lỗi nào đó. Bạn có nhận được "SIGABRT" hoặc "EXC_BAD_ACCESS" không? –

+0

không, không ai trong số họ – shannoga

+0

Bạn có thể đăng đầu ra từ Bàn điều khiển không? –

Trả lời

5

O.K Vấn đề thực sự là trong phương pháp ViewForOverlay (nhờ aBitObvious và tất cả phần còn lại). Dường như việc tải dòng của điểm từ mảng đang hoạt động tốt.

và cho câu hỏi thứ hai tôi chỉ cần tách nó đến 2 bước sau:

NSInteger c = [pointsArray count]; 
    CLLocationCoordinate2D pointsToUse[c]; 

và nó làm việc tốt, vì vậy nếu bất kỳ ai tìm kiếm một cách để tải overlayes từ plist, như vậy đang làm việc cho tôi .

Cảm ơn shani

Các vấn đề liên quan