2012-03-19 42 views
7

Tôi đã trải qua ví dụ mẫu của khuôn khổ MapKitCoreLocation. Tôi tìm thấy hai cấu trúc này (MKCoordinateSpanCLLocationCoordinate2D) tương tự như trong tuyên bố. Làm thế nào là những khác nhau trong chức năng, ai đó có thể xin vui lòng trang web một ví dụ (sử dụng cả hai) để xóa ý nghĩa của họ.Sự khác biệt giữa MKCoordinateSpan và CLLocationCoordinate2D

Cảm ơn!

Trả lời

22

MKCoordinateSpan xác định span, tức là một đồng bằng, theo các vĩ độ và kinh độ để hiển thị trên bản đồ. Cùng với một điểm, bạn có thể xác định một khu vực để hiển thị trên bản đồ.

CLLocationCoordinate2D xác định một điểm trong hệ tọa độ kinh độ và vĩ độ.

Ví dụ:

|<---- deltaLat ---->| 
|---------------------|--- 
|      | | 
|      | | 
|      | | 
|      | | 
|   +   |deltaLon 
|  (lat,lon)  | | 
|      | | 
|      | | 
|      | | 
|---------------------|--- 

đây bạn có thể tưởng tượng một điểm trung tâm (lat,lon) về mà bạn có một deltaLatdeltaLon.

Vì vậy, (lat,lon) sẽ là CLLocationCoordinate2DdeltaLat, deltaLon sẽ tạo thành một MKCoordinateSpan. Bạn đúng rằng cả hai cấu trúc được định nghĩa theo cùng một cách, nhưng điều này khá phổ biến khi hai cấu trúc khác nhau có ngữ nghĩa khác nhau và do đó được định nghĩa riêng biệt như bạn đã tìm thấy.

+0

Cảm ơn bạn đã trả lời, và một điều nữa tôi nhận được để biết ở đây, nghĩ rằng tôi nên chia sẻ với bạn. Span là mức thu phóng ở đây theo tài liệu của apple. Lesser sẽ là đồng bằng cao hơn sẽ là mức thu phóng. Giá trị delta này ở dạng float. Tại sao họ lấy nó trong CLLocationDegrees? – turtle

+0

Vì đó là một * delta *. tức là nó xác định vùng như tôi đã thể hiện trong sơ đồ thô. Nó không xác định một mức thu phóng trực tiếp, nó xác định chính xác một vùng. – mattjgalloway

+0

Got it..thanks .. :) – turtle

6

MKCoordinateSpan được hiểu như là đồng bằng giá trị, trong khi CLLocationCoordinate2D được hiểu như là một điểm.

Ví dụ: giả sử bạn muốn xác định vùng tròn, bạn sẽ xác định một điểm trung tâm và bán kính xung quanh nó.

Trong MapKit, bạn xác định một khu vực hình chữ nhật hình chữ nhật bởi MKCoordinateRegion. Điểm trung tâm là một CLLocationCoordinate2D (latitudelongitude - cả typedef của double) và một vùng đồng bằng dọc và ngang bằng MKCoordinateSpan (latitudeDeltalongitudeDelta - cả typedef của double)

+0

Cảm ơn bạn..được hiểu hoàn toàn .. :) – turtle

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