我正在尝试构建一个Android应用程序来在android studio中滚动android maps API v2。我想使用手机的加速计传感器在所有不同方向上滚动地图。例如,如果手机向右倾斜45度,我希望地图能够有力地向右移动45度。从我已经发现的我只能通过latlong目标或像素移动相机(滚动),有没有办法使用X,Y协调的角度这样做? 这些是我尝试的样本: 1-通过latlang目标移动相机。
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(20) // Sets the zoom
.bearing(20) // Sets the orientation of the camera to east
.tilt(10) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), 1000, null);
2-使用Accelerometer查找X,Y的手机角度:
float X = (float)Math.round(event.values[0]);
float Y= (float)Math.round(event.values[1]);
float angle = (float) (Math.atan2(X, Y)/(Math.PI/180));
我会很感激任何新想法,或者通过角度来移动相机。
答案 0 :(得分:1)
这种方法只会将相机移动一个等于设备倾斜幅度的像素,超过一秒钟。
mMap.animateCamera(CameraUpdateFactory.scrollBy(x, y), 1000, null);