2013-06-12 38 views
5

Tôi đang cố gắng sử dụng phương pháp fitBounds để phù hợp với tất cả các điểm đánh dấu của tôi trong chế độ xem máy ảnh bản đồ google. Vì vậy, tôi có đánh dấu của tôi được lưu trữ trong markersArray và tôi sử dụng mã sau đây để bắt đầu GMSCoordinateBounds với điểm đánh dấu thứ nhất và thứ hai trong markersArray hoạt động tốt.GMSCoordinateBounds IncludeCoordinates không hoạt động bình thường trong Google Maps SDK cho iOS

Sau đó, khi tôi cố gắng thêm điểm đánh dấu thứ 3 từ markersArray sử dụng includingCoordinate Tôi không thấy giới hạn cập nhật bất cứ điều gì không phải ở giá trị của nó cũng không phải trong bản đồ là nó thay đổi camera cho phù hợp.

Điều kỳ lạ là ở số Google maps SDK for iOS docs nó nói rằng GMSCoordinateBounds "là không thay đổi và không thể sửa đổi sau khi xây dựng." Điều đó có ý nghĩa? Tôi không thể thay đổi giới hạn sau khi xây dựng chúng? Sau đó, làm cách nào để thêm nhiều tọa độ hơn vào giới hạn?

Đây là mã của tôi:

GMSCoordinateBounds *bounds= [[GMSCoordinateBounds alloc] init]; 

    GMSMarker *marker1 = [markersArray objectAtIndex:0]; 
    GMSMarker *marker2 = [markersArray objectAtIndex:1]; 
    GMSMarker *marker3 = [markersArray objectAtIndex:2]; 

    bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:marker1.position coordinate:marker2.position]; 

    //Add the 3rd marker to the bounds 
    [bounds includingCoordinate:marker3.position]; 

    GMSCameraUpdate *update = [GMSCameraUpdate fitBounds:bounds withPadding:600.0f]; 
    [mapView_ animateWithCameraUpdate:update]; 

Trả lời

26

Phương pháp GMSCoordinateBounds includingCoordinate: trả về một giới hạn mới có chứa sự kết hợp của các giới hạn ban đầu và vị trí mới, nó không sửa đổi các đối tượng bạn gọi nó về.

Vì vậy, bạn sẽ cần một cái gì đó như thế này:

bounds = [bounds includingCoordinate: marker3.position]; 
+0

Nhờ nó hoạt động tốt ngay bây giờ. Rõ ràng là tôi cảm thấy xấu hổ khi hỏi. – Ali

+0

Bạn vừa lưu lại ngày của tôi! Cảm ơn bạn – apinho

+0

Làm thế nào mà google không bao gồm một phương pháp nhận được một mảng các địa điểm và trả lại cho bạn những giới hạn phù hợp với tất cả chúng? Con đường được thực hiện bây giờ buộc bạn phải khởi tạo nó với hai địa điểm duy nhất, và sau đó lặp lại các phần còn lại gọi includingCoordinate. Tôi đang thiếu một cách tốt hơn để làm điều đó? – Pauls

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