Arcgis没有提供指南针控件,如果需要,可以自定义一个,很简单
放置在布局文件中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.esri.arcgisruntime.mapping.view.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/ivCompass"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="5dp"
android:layout_alignParentRight="true"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_compass" />
监听地图旋转角度,指南针跟着转
private var lastBearing = 0f//指南针最后旋转角度
mapView.addMapRotationChangedListener {
val bearing: Float =
(360f - mapView.mapRotation).toFloat()
//创建指南针旋转动画
val rotateAnimation = RotateAnimation(
lastBearing, bearing, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f
)
rotateAnimation.fillAfter = true
ivCompass.startAnimation(rotateAnimation)
lastBearing = bearing
}
点击指南针,地图角度回正
ivCompass.setOnClickListener {
mapView.setViewpointRotationAsync(0.0)
}
这样就OK了
网友评论