Appearance
地图移动、旋转、缩放
地图有4个基本属性,共同控制其展现,分别是:
- 中心点,控制地图在手机屏幕中心的位置。
- 旋转角,控制地图与正北夹角
- 缩放级别,控制地图的缩放、比例尺
- 俯仰角,控制地图的俯仰视图
其四个属性,均可通过函数簇:moveCamera 和 animateCamera来实现。其中
moveCamera是直接改变地图属性,无动画;animateCamera是moveCamera的动画版本,内部会用预制的插值算法,以动画方式移动地图。
可用通过CameraUpdateFactory获取丰富的移动动作。
java
// 垂直移动100像素
diMap.animateCamera(CameraUpdateFactory.scrollBy(0, -100));
// 放大一个级别(不带动画)
diMap.moveCamera(CameraUpdateFactory.zoomIn());
// 移动到new LatLng(40.0498582224,116.2865710258)点,并将缩放级别控制在14级
diMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40.0498582224,116.2865710258), 14));常用的地图操作:
| API | 作用 |
|---|---|
zoomTo | 将地图直接缩放到指定级别。 |
zoomIn() | 放大一级(当前缩放级别 +1)。 |
zoomOut() | 缩小一级(当前缩放级别 -1)。 |
zoomBy | 在当前缩放级别基础上按增量缩放;若超出范围会被限制在有效范围内。 |
newCameraPosition | 根据给定的 CameraPosition(中心点、缩放、朝向、倾斜)创建相机更新。 |
newLatLng | 仅改变地图中心点。 |
newLatLngZoom | 同时改变地图中心点和缩放级别。 |
newLatLngBoundsRect | 根据经纬度点集合与四周边距,计算并设置可见范围。 |
scrollBy | 将地图按像素平移(x 向左、y 向下)。 |
newLatLngBounds | 使用 LatLngBounds 与统一内边距设置可见范围。 |