实用滚动android地图

时间:2017-03-15 21:02:26

标签: android google-maps accelerometer

我正在尝试构建一个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));

我会很感激任何新想法,或者通过角度来移动相机。

1 个答案:

答案 0 :(得分:1)

这种方法只会将相机移动一个等于设备倾斜幅度的像素,超过一秒钟。

mMap.animateCamera(CameraUpdateFactory.scrollBy(x, y), 1000, null);