开发 Android 地图SDK 开发指南 与地图交互 调用方法交互

调用方法交互 最后更新时间: 2021年01月22日

方法交互的概念是从程序角度出发提出的。地图 SDK 提供了很多与地图交互的接口方法,例如:改变地图显示的区域(即改变地图中心点)、改变地图的缩放级别、限制地图的显示范围等。

地图视角交互的核心方法均依赖 AMap 类提供的这两个方法,区别在于所构造的 CameraUpdate 类对象参数不一样,得到的效果也不同。以下对例举的三种常用交互方法进行详细介绍,其余的交互方法请参考官方参考手册

在本文最后介绍了如何改变地图默认显示区域,需要注意的是改变地图默认显示区域不依赖以下两个方法。

带有地图视角移动动画的方法:

//AMap类中提供,带有移动过程的动画
animateCamera(CameraUpdate cameraupdate,long duration,AMap.CancelableCallback cancelablecallback);

不带地图视角移动动画的方法:

//AMap类中提供,直接移动过去,不带移动过程动画
moveCamera(CameraUpdate cameraupdate);

改变地图的中心点

如果想改变地图中心点,可以通过如下方法构造改变地图中心点的 CameraUpdate 参数:

//参数依次是:视角调整区域的中心点坐标、希望调整到的缩放级别、俯仰角0°~45°(垂直与地图时为0)、偏航角 0~360° (正北方为0)
CameraUpdate mCameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(new LatLng(39.977290,116.337000),18,30,0));

改变地图的缩放级别

如果想改变地图的缩放级别,可以通过如下方法构造改变地图缩放级别的 CameraUpdate 参数:


//设置希望展示的地图缩放级别
CameraUpdate mCameraUpdate = CameraUpdateFactory.zoomTo(17);

地图的缩放级别一共分为 17 级,从 3 到 19。数字越大,展示的图面信息越精细。

名称

参数说明

调用方法

ZoomTo

缩放地图到指定的缩放级别

AMap.moveCamera(CameraUpdateFactory.zoomTo(17))

ZoomIn

缩放地图到当前缩放级别的上一级

AMap.moveCamera(CameraUpdateFactory.zoomIn())

限制地图的显示范围

从地图 SDK V4.1.0 起新增了设置地图显示范围的方法,手机屏幕仅显示设定的地图范围,例如:希望设置仅显示北京市区地图,可使用此功能。

注意:如果限制了地图显示范围,地图旋转手势将会失效。

调用示例如下:

LatLng southwestLatLng = new LatLng(33.789925, 104.838326);
LatLng northeastLatLng = new LatLng(38.740688, 114.647472);
LatLngBounds latLngBounds = new LatLngBounds(southwestLatLng, northeastLatLng);
aMap.setMapStatusLimits(latLngBounds);

改变地图默认显示区域

地图默认显示北京地区,通过采用重载的 MapView 构造方法更改默认地图显示区域:


MapView mapView = new MapView(this, mapOptions);

代码实现片段:

// 定义北京市经纬度坐标(此处以北京坐标为例)
LatLng centerBJPoint= new LatLng(39.904989,116.405285);
// 定义了一个配置 AMap 对象的参数类
AMapOptions mapOptions = new AMapOptions();
// 设置了一个可视范围的初始化位置
// CameraPosition 第一个参数: 目标位置的屏幕中心点经纬度坐标。
// CameraPosition 第二个参数: 目标可视区域的缩放级别
// CameraPosition 第三个参数: 目标可视区域的倾斜度,以角度为单位。
// CameraPosition 第四个参数: 可视区域指向的方向,以角度为单位,从正北向顺时针方向计算,从0度到360度
mapOptions.camera(new CameraPosition(centerBJPoint, 10f, 0, 0));
// 定义一个 MapView 对象,构造方法中传入 mapOptions 参数类
MapView mapView = new MapView(this, mapOptions);
// 调用 onCreate方法 对 MapView LayoutParams 设置
mapView.onCreate(savedInstanceState);

返回顶部 示例中心 常见问题 智能客服 公众号
二维码