用移动方向旋转标记

时间:2017-12-08 10:14:35

标签: android google-maps

我开发了谷歌地图实现的Android应用程序。我试图让标记随着移动方向旋转(就像谷歌地图中的导航一样),但所有尝试过的代码都失败了。以下是代码。任何建议。注意(Iam从返回位置,速度和轴承的方法获得轴承,我可以看到轴承的浮动值在改变方向时发生变化。

                float bearing = setterandGetter.getBearing();
                double lat = setterandGetter.getLatitude();
                double lon = setterandGetter.getLongitude();
                LatLng currentPosition = new LatLng(latitudelongitude);

                googleMap.moveCamera(CameraUpdateFactory.newLatLng(currentPosition));

Marker marker = googleMap.addMarker(new MarkerOptions().position(currentPosition).icon(BitmapDescriptorFactory.fromBitmap(blueIcon)).flat(true).rotation(bearing));

2 个答案:

答案 0 :(得分:1)

试试这个:

首先全局声明标记varialble并使用以下行初始化它onCreate:

marker = googleMap.addMarker(new MarkerOptions().position(currentPosition).icon(BitmapDescriptorFactory.fromBitmap(blueIcon)).flat(true).rotation(0));

现在在onLocationChanged()中添加以下代码:

map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
       @Override
       public void onMyLocationChange(final Location location) {
       marker.setPosition(new LatLng(location.getLatitude(),location.getLongitude()))
       marker.setRotation(location.getBearing());
    }
});

答案 1 :(得分:0)

使用map.clear()清除地图,然后创建标记,这样每当您的位置发生变化时,旧标记将自动清除并创建新标记,因此标记正在随着位置移动