我开发了谷歌地图实现的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));
答案 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()
清除地图,然后创建标记,这样每当您的位置发生变化时,旧标记将自动清除并创建新标记,因此标记正在随着位置移动