图为高德地图实现指北针的效果,那么ArcGIS如何实现呢?
实现方式:
添加地图的旋转监听:
map.addMapRotationChangedListener(new MapRotationChangedListener() {
@Override
public void mapRotationChanged(MapRotationChangedEvent mapRotationChangedEvent) {
startIvCompass((float) map.getMapRotation());//map.getMapRotation()为地图旋转的角度
}
});
在mapRotationChanged()
中执行 startIvCompass()
指北针icon旋转方法;
/***
*设置ImageView旋转动画
* @param bearing
* lastBearing为上次icon旋转之后所处的角度
* bearing为要旋转到的角度位置
*/
private void startIvCompass(float bearing) {
bearing = 360 - bearing;
rotateAnimation = new RotateAnimation(lastBearing, bearing, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setFillAfter(true);
ivCompass.startAnimation(rotateAnimation);
lastBearing = bearing;
}