Android Studio高德地图开发(二)地图交互

951 阅读1分钟

与地图交互

记录下高德地图交互相关的设置。地图的触摸事件很丰富,有单击、双击、单指拖拽、双指拖拽、双指旋转、双指缩放等,高德提供了api来设置这些用户交互,还有地图截图,这也算是用户交互。

显示设置

1、 指南针

在左上角显示

UiSettings mUiSettings = aMap.getUiSettings(); //初始化
mUiSettings.setCompassEnabled(true);//指南针

image.png

2、 比例尺

mUiSettings.setScaleControlsEnabled(true);//比例尺

image.png

3、 缩放控件

mUiSettings.setScaleControlsEnabled(true);//比例尺
mUiSettings.setZoomControlsEnabled(true);//缩放控件

image.png 可通过

mUiSettings.setZoomPosition(AMapOptions.ZOOM_POSITION_RIGHT_BUTTOM) //左下角
mUiSettings.setZoomPosition(AMapOptions.ZOOM_POSITION_RIGHT_CENTER)// 左中间

调整缩放控件位置

4、 LOGO

mUiSetting.setLogoPosition(int);

默认位置在左下角

image.png

系统提供了6种LOGO的位置

mUiSettings.setLogoPosition(AMapOptions.LOGO_MARGIN_LEFT);
mUiSettings.setLogoPosition(AMapOptions.LOGO_MARGIN_BOTTOM);
mUiSettings.setLogoPosition(AMapOptions.LOGO_MARGIN_RIGHT);
mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_LEFT);
mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_RIGHT);
mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_CENTER);

5、获取缩放比例

float scale = aMap.getScalePerPixel();

image.png 获取出来的这个scale单位是米/像素,也就是屏幕上一像素等于实际多少米

触控设置

1、 滑动手势

是否可以单指滑动

mUiSettings.setScrollGesturesEnabled(false);

2、 缩放手势

是否可以双指缩放

mUiSettings.setZoomGesturesEnabled(false);

3、 倾斜手势

是否可以双指倾斜

mUiSettings.setTiltGesturesEnabled(false);

4、 旋转手势

是否可以双指旋转

mUiSettings.setRotateGesturesEnabled(false);

5、 所有手势开关

mUiSettings.setAllGesturesEnabled (false);

边界限制

这个api是一个比较新的api,你先定义好东北、西南两个点的坐标,然后地图根据这两个点限制的范围,自动显示地图。

LatLng northeastLatLng = new LatLng(40.159453, 116.767834);
LatLng southwestLatLng = new LatLng(39.674949, 115.932873);
LatLngBounds latLngBounds = new LatLngBounds(southwestLatLng, northeastLatLng);
aMap.setMapStatusLimits(latLngBounds);

image.png

地图截屏

这个就简单了,就是一个api,调用一下。

aMap.getMapScreenShot(new AMap.OnMapScreenShotListener())