2011-08-22 32 views
9

Tôi đã chỉ tò mò cách chính xác để vẽ một tuyến đường đơn giản giữa một tập hợp các điểm là gì? Tôi hiện đang có một mảng tọa độ và khi tôi chuyển nó sang polylineWithCoordinates và làm tất cả những thứ cần thiết khác, nó sẽ vẽ một mạng lưới lớn các đường kết nối tất cả các điểm với nhau. Tôi đã xem xét một vài mẫu nhưng không ai trong số họ dường như làm bất cứ điều gì đặc biệt để giải thích cho điều này, ngay cả khi họ sử dụng nhiều hơn hai điểm.MapKit - polylineWithĐối sánh kết nối tất cả các điểm

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    ... 

    //Add drawing of route line 
    CLLocationCoordinate2D coordinates[[myCheckpoints count]]; 

    int i = 0; 
    for (Checkpoint *ckpt in myCheckpoints) 
    { 
     coordinates[i] = CLLocationCoordinate2DMake([ckpt.lat floatValue] , [ckpt.lon floatValue]); 
     i++; 
    } 

    MKPolyline *route = [MKPolyline polylineWithCoordinates: coordinates count: [myCheckpoints count]]; 
    [mapView addOverlay:route]; 

} 

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 

    MKPolylineView *polylineView = [[[MKPolylineView alloc] initWithPolyline:overlay] autorelease]; 
    polylineView.strokeColor = [UIColor greenColor]; 
    polylineView.lineWidth = 5.0; 

    return polylineView; 

} 

Đây là mã trong bản đồ của tôiViewController có trách nhiệm vẽ, trong trường hợp ai đó nhìn thấy những gì tôi đang làm hoặc không làm. Here is what the result looks like

Bây giờ tôi nhìn vào mọi thứ gần hơn, thực sự không kết nối các tọa độ lân cận với nhau. Mỗi điểm chỉ có 2 dòng xuất phát từ nó kết nối điểm đó với 2 điểm nữa nhưng tôi không thể tìm ra mẫu của nó để kết nối chúng.

+0

Có bất kỳ tọa độ nào lặp lại không? Đảm bảo tọa độ trong myCheckpoints theo thứ tự bạn muốn vẽ. – Anna

+0

Yea, tất cả tọa độ là duy nhất và theo thứ tự đúng. Vì vậy, tôi đúng trong giả định điều này không phải là nghĩa vụ phải xảy ra? –

+0

Nó sẽ vẽ các đường theo thứ tự các tọa độ được cung cấp. Có bao nhiêu điểm trong hàng? Đăng nhập các tọa độ khi chúng được thêm vào trong vòng lặp. – Anna

Trả lời

3

Đảm bảo tọa độ trong myCheckpoints theo thứ tự bạn muốn vẽ.

Nó sẽ vẽ các đường theo thứ tự tọa độ được cung cấp.

+0

Tôi đã sử dụng phương pháp phân loại khối trong câu trả lời ở đây: http: //stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it – rmooney

+0

tôi nhận được phản hồi từ dịch vụ web mà tôi không nhận được bất kỳ hướng dẫn nào về cách vẽ tuyến đường. tôi chỉ cần vượt qua một ngày của cordinates và vẽ một tuyến đường nhưng vấn đề là nó vẽ hai dòng một từ đầu đến cuối và kết thúc khác để bắt đầu điểm –

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