2010-07-03 27 views
14

Tôi đang cố tạo lớp phủ đa dòng (MKPolyline) cập nhật định kỳ, để mô phỏng chuyển động của một đối tượng. Tôi có thể đạt được điều này bằng cách loại bỏ lớp phủ cũ, cập nhật polyline và thêm lớp phủ một lần nữa, nhưng điều này dẫn đến nhấp nháy.cách cập nhật MKPolyline/MKPolylineView?

Đối với chú thích điểm (MKPointAnnotation), bạn chỉ cần thay đổi tọa độ của nó và chế độ xem sẽ được cập nhật tự động và mượt mà mà không phải xóa và thêm lại chú thích.

Điều này cũng có thể bằng cách nào đó cho lớp phủ không?

+0

Tôi đã đăng tải một thực hiện đầy đủ [ở đây] [1] [1]: http://stackoverflow.com/questions/11282271/draw-line-on-mkmapview-with-pattern -image/11344230 # 11344230 – EsbenB

Trả lời

15

yea, bạn sẽ phải thêm lớp phủ bổ sung với tập hợp điểm từ điểm cuối cùng của bạn đến điểm tiếp theo. Một khi bạn tạo MKPolyline với các điểm của bạn, bạn không thể thay đổi nó khi nó rút ra MKPolylineView mà không loại bỏ các cũ và thêm mới được tạo ra.

bạn có thể tạo chế độ xem đa giác mới với tất cả các điểm (bao gồm cả điểm mới) và thêm điểm đó vào bản đồ nhưng không loại bỏ điểm cũ hơn. sau đó khi một cái mới được thêm vào, bạn có thể loại bỏ cái cũ hơn. Nó có thể không được khá để thực hiện nhưng nó nên thoát khỏi nhấp nháy trên cập nhật. bạn có thể phân biệt cũ và mới bằng thẻ. có thể một số điểm khi thẻ sẽ hoạt động.

+0

cảm ơn câu trả lời của bạn. Tôi đã thực hiện nó theo cách bạn đề nghị và đó là làm việc khá độc đáo. Như bạn nói, không phải là thực hiện đẹp nhất, nhưng có lẽ là tốt nhất tôi có thể làm mà không cần viết các lớp học PolyLine của riêng tôi. – adriaan

+0

Cảm ơn câu trả lời. Thật không may điều này có lẽ không giải quyết được vấn đề của tôi, vì lớp phủ của tôi là bán trong suốt. Tôi có lẽ sẽ phải thêm chế độ xem của riêng tôi lên trên bản đồ. – huggie

+0

cảm ơn bạn AtomRiot! – james075

1

Lớp MKPolyline kế thừa MKMultiPoint, bao gồm một tập các điểm. Đây là thuộc tính chỉ đọc, có nghĩa là, bạn không thể cập nhật thuộc tính này.

+0

Cảm ơn câu trả lời của bạn Peter. Có ý nghĩa. – adriaan

9

Tất cả các lớp phủ MapKit đều không thay đổi để bạn có thể dễ dàng thay đổi lớp phủ tùy chỉnh và chỉ vẽ lại vùng cần được cập nhật.

Bạn có thể tìm thấy ví dụ trong ví dụ về ứng dụng mẫu Breadcrumb từ Apple. Breadcrumb link

+0

Cảm ơn @SorinA - Như tôi đã đề cập, tôi đã đi với phương pháp tiếp cận @ AtomRiot vào thời điểm đó. Nhưng trong bản cập nhật tiếp theo cho ứng dụng tôi sẽ kiểm tra mẫu Breadcrumb để xem liệu đó có thể là một cải tiến hay không. – adriaan

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