android 地图标记旋转,在谷歌地图中旋转标记/汽车图标 – Android

我正在尝试像ola / uber这样的应用程序.我想移动图标并在道路左转或右转时旋转.我正在使用以下代码.

private void rotateMarker(final Marker marker, final float toRotation) {

if(!isMarkerRotating) {

final Handler handler = new Handler();

final long start = SystemClock.uptimeMillis();

final float startRotation = marker.getRotation();

final long duration = 1000;

final Interpolator interpolator = new LinearInterpolator();

handler.post(new Runnable() {

@Override

public void run() {

isMarkerRotating = true;

long elapsed = SystemClock.uptimeMillis() - start;

float t = interpolator.getInterpolation((float) elapsed / duration);

float rot = t * toRotation + (1 - t) * startRotation;

marker.setRotation(-rot > 180 ? rot / 2 : rot);

if (t < 1.0) {

// Post again 16ms later.

handler.postDelayed(this, 16);

} else {

isMarkerRotating = false;

}

}

});

}

}

计算方位:

currentLocation = location;

if(previousLocaton!=null){

previousLocaton = tempLocation;

tempLocation = currentLocation;

Log.d("previousLocaton=====> ",""+previousLocaton);

Log.d("currentLocation=====> ",""+currentLocation);

bearing = previousLocaton.bearingTo(currentLocation) ;

}else{

previousLocaton = location;

tempLocation = location;

}

设置轴承:

CameraPosition cameraPosition = new CameraPosition.Builder()

.target(latLng).zoom(14).bearing(bearing).build();

要旋转标记,我在onLocationChanged更改方法中调用roateMarker方法:

currLocationMarker = mMap.addMarker(markerOptions);

rotateMarker(currLocationMarker,bearing);

现在我的图标正在旋转.但谷歌地图也变得旋转.我想单独旋转图标.我将以下链接用于动画和移动标记. Link 1.请让我任何想法来解决我的问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值