Skip to content

地图移动、旋转、缩放

地图有4个基本属性,共同控制其展现,分别是:

  • 中心点,控制地图在手机屏幕中心的位置。
  • 旋转角,控制地图与正北夹角
  • 缩放级别,控制地图的缩放、比例尺
  • 俯仰角,控制地图的俯仰视图

其四个属性,均可通过函数簇:moveCameraanimateCamera来实现。其中

  • moveCamera 是直接改变地图属性,无动画;
  • animateCameramoveCamera的动画版本,内部会用预制的插值算法,以动画方式移动地图。

可用通过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 与统一内边距设置可见范围。