Bạn cần phương pháp zoomOut
với tham số thu phóng liên tục được đặt để thực hiện thu phóng và phương pháp panTo
để thực hiện thao tác quét trơn tru đến điểm giữa mới.
Bạn có thể lắng nghe những zoomEnd
và moveEnd
sự kiện trên đối tượng bản đồ để chuỗi lại với nhau bạn zoomOut
, panTo
và zoomIn
phương pháp.
EDIT:
Vì vậy, trong quá trình thực hiện một mẫu cho vấn đề này, tôi phát hiện ra rằng doContinuousZoom
param trên ZoomIn
và ZoomOut
(hoặc chỉ cần EnableContinuousZoom
trên bản đồ) không thực hiện khá công như mong đợi. Nó hoạt động ok khi phóng to, nếu các tile nằm trong cache (đây là một điểm quan trọng, nếu các tile không được lưu trữ thì nó không thực sự có thể có được animation mượt mà mà bạn đang sử dụng). các ô để mô phỏng hoạt ảnh thu phóng mượt mà và giới thiệu độ trễ ~ 500 ms trên mỗi bước thu phóng để bạn có thể làm điều đó một cách không đồng bộ (không giống như panTo
, mà bạn sẽ thấy trong ví dụ của tôi, tôi sử dụng setTimeout để gọi async).
Thật không may là điều này cũng không đúng đối với phương pháp zoomIn
, chỉ nhảy đến mức thu phóng mục tiêu mà không có hình động thu nhỏ cho từng mức thu phóng. Tôi đã không cố gắng thiết lập rõ ràng phiên bản cho mã bản đồ google, vì vậy đây có thể là một cái gì đó được sửa trong các phiên bản sau. Dù sao, đây là sample code mà hầu như chỉ là javascript hoop nhảy và không quá nhiều với các API của Google Maps:
http://www.cannonade.net/geo.php?test=geo2
Bởi vì phương pháp này có vẻ hơi không đáng tin cậy, tôi nghĩ rằng nó sẽ có ý nghĩa hơn để làm việc xử lý async cho setZoom một cách rõ ràng (Giống như các công cụ panning).
EDIT2:
Vì vậy, tôi làm async phóng to một cách rõ ràng bây giờ (sử dụng setTimeout
với zoom duy nhất tại một thời điểm). Tôi cũng phải kích hoạt các sự kiện khi mỗi lần thu phóng diễn ra để chuỗi sự kiện của tôi chính xác. Có vẻ như các sự kiện zoomEnd và panEnd đang được gọi đồng bộ.
Cài đặt enableContinuousZoom trên bản đồ dường như không hoạt động, vì vậy tôi đoán gọi zoomOut, zoomIn với param là cách duy nhất để làm việc đó.
tôi biết mình phải làm một cái gì đó như thế, những gì tôi đang tự hỏi là làm thế nào tôi chính xác tôi sẽ làm điều đó? –
Tôi sẽ đăng một số mã ngay khi có cơ hội ... – RedBlueThing
Cảm ơn, mong chờ nó;) –