Tôi đang phát triển một ứng dụng Android được cho là sử dụng Google Maps phiên bản 2. Bây giờ tôi bị kẹt khi tìm kiếm khi mức thu phóng của bản đồ đã thay đổi. Có ai có thể giúp tôi không? Cảm ơn trước.Trình nghe mức thu phóng trong bản đồ google v2 trong android
Trả lời
Tạo triển khai of OnCameraChangeListener
và chuyển một phiên bản của nó to setOnCameraChangeListener()
of your GoogleMap
. Người nghe của bạn nên được gọi với onCameraChange()
bất cứ khi nào người dùng thay đổi thu phóng, trung tâm hoặc nghiêng. Bạn tìm ra mức thu phóng mới từ đối tượng CameraPosition
mà bạn được chuyển.
Nếu bạn đang tìm kiếm cách để xác định xem mức độ phóng đã thay đổi từ mức độ phóng trước, đây là những gì tôi muốn đề nghị:
Xác định một biến Ví dụ để theo dõi mức độ phóng theo thời gian:
//Initialize to a non-valid zoom value
private float previousZoomLevel = -1.0f;
Ngoài ra, xác định một biến Ví dụ để cho bạn biết nếu bản đồ được phóng to:
private boolean isZooming = false;
Khi bạn thiết lập googlemap của bạn ví dụ, cung cấp cho nó một OnCameraC hangeListener ...
//mMap is an instance of GoogleMap
mMap.setOnCameraChangeListener(getCameraChangeListener());
Bây giờ, xác định OnCameraChangeListener mà sẽ xác định xem mức độ phóng đã thay đổi:
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
Log.d("Zoom", "Zoom: " + position.zoom);
if(previousZoomLevel != position.zoom)
{
isZooming = true;
}
previousZoomLevel = position.zoom;
}
};
}
Bây giờ, bạn có thể kiểm tra giá trị của isZooming biết nếu bạn đang thay đổi mức thu phóng .
Hãy chắc chắn để thiết lập
isZooming = false;
sau khi bạn đã hoàn thành bất kỳ hành động dựa vào việc giả nếu bản đồ được phóng to.
Cũng hoạt động hoàn hảo như một người nghe kéo. Chính xác những gì tôi đang tìm kiếm để lọc đánh dấu xem theo khoảng cách đến trung tâm bản đồ. Cảm ơn! –
không còn được dùng nữa. –
Vì câu trả lời trước được dựa trên OnCameraChangeListener
và đó là deprecated, câu trả lời này được dựa trên máy ảnh setOnCameraMoveListener
.
Trong ví dụ này, tôi đang thay đổi Map Type khi người dùng thay đổi thu phóng (sử dụng điều khiển hoặc ngón tay và thu phóng). Nếu zoom level thay đổi trên 18.0, thay đổi loại bản đồ thành MAP_TYPE_HYBRIB
và nếu thay đổi dưới 18.0, thay đổi loại bản đồ thành MAP_TYPE_NORMAL
.
googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
@Override
public void onCameraMove() {
CameraPosition cameraPosition = googleMap.getCameraPosition();
if(cameraPosition.zoom > 18.0) {
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
} else {
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
});
Đẹp! Sạch hơn nhiều so với OnCameraChangeListener. Ý tưởng thú vị để thay đổi loại bản đồ. –
lưu ý: gọi lại này được kích hoạt khá một vài lần cho mỗi sự kiện thu phóng –
@SomeoneSomewhere Có, đúng vậy. Trong khi người dùng đang phóng to, mỗi "giai đoạn" của thu phóng sẽ có trình kích hoạt. Bạn phóng to/thu nhỏ càng chậm, thời gian sẽ càng kích hoạt trình nghe. Bạn phóng to/thu nhỏ nhanh hơn, ít lần nó sẽ kích hoạt. –
- 1. Google Maps v2 Đặt mức thu phóng
- 2. Android Google Maps v2 - đặt mức thu phóng cho myLocation
- 3. Cách đặt mức thu phóng trong bản đồ google
- 4. Google Maps Android MapView v2: vô hiệu hóa thu phóng
- 5. Làm cách nào để thay đổi mức thu phóng của bản đồ Google theo lập trình?
- 6. Cách tìm mức thu phóng hiện tại trong Google Map?
- 7. Tùy chỉnh infowindow trong bản đồ Google android v2
- 8. Google-Maps v3: Cách thay đổi kiểu bản đồ dựa trên mức thu phóng?
- 9. Cách lấy mức thu phóng hiện tại từ bản đồ google cho ios?
- 10. Nút Thu phóng V3 Bản đồ Google API tùy chỉnh
- 11. Trên sự kiện thu phóng cho bản đồ google trên android
- 12. thu phóng để phù hợp với tất cả các điểm đánh dấu trên bản đồ google maps v2
- 13. Android- Google bản đồ v2 Draw vòng tròn
- 14. Google maps api v2 phóng to gần điểm đánh dấu
- 15. Bản đồ Google v2 hoặc v3?
- 16. Android bản đồ V2 newLatLngBounds với mang
- 17. Bản đồ google android api v2 marker shadows
- 18. Overring mức bản đồ zoom trong Google Maps cho ExpressionEngine
- 19. Android 2.3 và bản đồ google API v2
- 20. Bản đồ Android Thu phóng Hiển thị tất cả Ghim
- 21. Thay đổi mức thu phóng của trình duyệt
- 22. Thu phóng và căn giữa Bản đồ Google theo các điểm đánh dấu (JavaScript API V3)
- 23. Google Maps dành cho Android trung tâm V2 API dấu
- 24. tắt tính năng kéo thu phóng trong bản đồ Google bằng cách nhấp vào nút
- 25. Cách tạo vòng kết nối trong bản đồ google v3 với cùng bán kính ở tất cả các mức thu phóng?
- 26. Mở rộng API Google Maps Android v2 để cung cấp các sự kiện xoay và thu phóng
- 27. Cài đặt mức thu phóng trên trình duyệt di động
- 28. Kích hoạt sự kiện bản đồ (như nhấp chuột đánh dấu) trong Google maps Android V2
- 29. Bản đồ thế giới chính trị có thể thu phóng
- 30. các nút thu phóng trong trình duyệt web của Android
setOnCameraChangeListener now deprecated – Makalele
@CommonsWare what if I want to detect only zoom onDoubleTap on google map ?? –
@NirmalPrajapat: Tôi không biết, xin lỗi. – CommonsWare