Tôi đang cố gắng tìm hiểu android và chơi với một ứng dụng bằng cách sử dụng api googlemaps v2 mới.bản đồ các vấn đề về tốc độ api2 animateCamera
Tôi có một vài mục menu, một ảnh thu phóng đến vị trí hiện tại, một ảnh cuối cùng sẽ thu phóng đến một vị trí khác. Người đầu tiên (show_horizon trong mã dưới đây) cho phép bản đồ để xoay, thứ hai đặt bản đồ để tĩnh với phía bắc ở phía trên cùng của màn hình.
Tôi đã đặt cả hai có độ trễ dài 6 giây, nhưng show_horizon() dường như bỏ qua cài đặt tốc độ, trong khi show_iss() tôn trọng nó.
cũng, một lần ở chế độ xoay, nếu tôi cuộn về bản đồ và trình kích hoạt show_horizon() bây giờ nó sẽ tôn trọng cài đặt tốc độ.
Vì vậy, dường như chỉ bỏ qua mã khi tôi chuyển từ không xoay sang luân phiên, nhưng nó tôn trọng nó khi tôi đi theo cách khác. Tôi đã thử dừng người nghe khi chuyển đổi trong trường hợp nó làm gián đoạn hoạt ảnh của máy ảnh, nhưng nó không có sự khác biệt?
Bất kỳ manh mối hoặc ý tưởng nào được chào đón.
cảm ơn
Đây là mã.
Tôi có một người nghe cảm biến nhận được mang điện thoại như thế này:
private SensorEventListener get_bearing = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
float azimuth = event.values[0];
set_bearing(azimuth);
}
};
private void set_bearing(float azimuth) {
if (!rotate_view) {
bearing = 0;
} else {
if (bearing != Math.round(azimuth)) {
bearing = Math.round(azimuth);
update_map();
}
}
}
và vài phương pháp để thay đổi bản đồ để quay hay không:
private void show_horizon() {
current_pos = new LatLng(gps.getLatitude(), gps.getLongitude());
rotate_view = true;
tilt = 30;
zoom_level = 14;
stop_listener();
update_map(6000);
start_listener();
}
private void show_iss() {
rotate_view = false;
bearing = 0;
tilt = 0;
update_map(6000);
}
và mã của tôi để cập nhật vị trí máy ảnh:
private void update_map() {update_map(100);}
private void update_map(int speed) {
if (current_pos != null) {
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(current_pos)
.zoom(zoom_level)
.bearing(bearing)
.tilt(tilt)
.build();
gmap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), speed, null);
}
}