控件和手势

利用 Maps SDK for Android,您可以确定将哪些内置界面组件显示在地图上以及允许哪些手势,从而对用户与地图进行互动的方式进行自定义。

代码示例

GitHub 上的 ApiDemos 代码库包含一个展示如何使用控件和手势选项的示例:

用户互动最少的精简模式

如果您需要用户互动最少的轻型地图,请考虑使用精简模式地图。精简模式以指定缩放级别在指定位置提供地图的位图图像。在精简模式下,用户无法平移或缩放地图,且手势不起作用。如需了解详情,请参阅有关精简模式的指南。

界面控件

Maps API 提供的内置界面控件与您的 Android 手机上 Google 地图应用中提供的那些控件类似。您可以使用 UiSettings 类(可使用 GoogleMap.getUiSettings 方法从 GoogleMap 中获取)切换这些控件的显示状态。对该类所做的更改会立即体现在地图上。如需查看这些地图项的示例,请查看示例应用中的界面设置演示版 Activity。

如果地图是通过 XML 属性或使用 GoogleMapOptions 类创建的,您也可以配置其中的大部分选项。如需了解详情,请参阅配置初始状态

每个界面控件都具有以地图边缘为参照物的预定位置。您可以通过向 GoogleMap 对象添加内边距,加大控件与顶部、底部、左侧或右侧边缘的距离。

缩放控件

Maps API 提供的内置缩放控件显示在地图右下角。这些控件默认处于停用状态,但可通过调用 UiSettings.setZoomControlsEnabled(true) 启用。

缩放控件

罗盘

Maps API 提供的罗盘图形会在特定情况下显示在地图左上角。仅当相机的朝向使得其具有非零方位或非零倾斜角度时,才会显示罗盘。当用户点击罗盘时,相机会以动画呈现方式恢复到方位和倾斜度为零的(默认朝向)位置,并且罗盘会在之后不久逐渐消失。您可以通过调用 UiSettings.setCompassEnabled(boolean) 完全禁止罗盘显示。不过,您无法强制始终显示罗盘。

罗盘

“我的位置”按钮

仅当启用了“我的位置”图层时,“我的位置”按钮才会显示在屏幕右上角。如需了解详情,请参阅有关位置数据的指南。

“我的位置”按钮

楼层选择器

默认情况下,当用户查看室内地图时,楼层选择器会显示在靠近屏幕中心右侧边缘的位置。当显示两个或多个室内地图时,楼层选择器将应用于当前获得焦点的建筑物,通常是最靠近屏幕中心的建筑物。每栋建筑物都有一个默认楼层,选择器首次显示时会选择此楼层。用户可以通过该选择器选择不同的楼层。

您可以通过调用 GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean) 停用或启用楼层选择器控件。

如果您想用自己的楼层选择器替换默认楼层选择器,便可执行这项操作。

楼层选择器

地图工具栏

默认情况下,当用户点按标记时,工具栏会显示在地图右下角。用户可以通过工具栏快速访问 Google 地图移动应用。

您可以通过调用 UiSettings.setMapToolbarEnabled(boolean) 启用和停用工具栏。

精简模式地图中,无论用户执行什么操作,该工具栏都一直存在。在完全互动地图中,该工具栏会在用户点按标记时滑入,在标记失去焦点时再次滑出。

通过该工具栏显示的图标,用户可以查看 Google 地图移动应用中的地图视图或路线请求。当用户点按该工具栏上的图标时,API 会生成一个 Intent,以启动 Google 地图移动应用中的相应 Activity。

地图工具栏

在以上屏幕截图中,工具栏显示在地图右下角。地图上将不出现任何 Intent 图标、出现一个 Intent 图标或同时出现两个 Intent 图标,具体取决于地图的内容,前提是 Google 地图移动应用支持生成的 Intent。

地图手势

利用 Maps SDK for Android 创建的地图支持与 Google 地图应用相同的手势。不过,在某些情况下,您可能希望停用某些手势,以便保持地图的状态。您还能以编程方式设置缩放、平移、倾斜和方位。如需了解详情,请参阅相机和视图。请注意,停用手势对您是否能以编程方式更改相机位置并无影响。

与界面控件类似,您也可以通过 UiSettings 类(可通过调用 GoogleMap.getUiSettingsGoogleMap 中获取)启用/停用手势。对该类所做的更改会立即体现在地图上。如需查看这些地图项的示例,请查看示例应用(请参阅此处,了解安装方法)中的界面设置演示版 Activity。

当地图是通过 XML 属性或使用 GoogleMapOptions 类创建时,您也可以配置这些选项。如需了解详情,请参阅配置地图

缩放手势

地图可对各种能够改变相机缩放级别的手势作出响应:

  • 点按两次可使缩放级别增加 1(放大)。
  • 双指点按可使缩放级别减少 1(缩小)
  • 双指张合/拉伸
  • 通过两次点按实现单指缩放,第二次点按时按住,然后上划缩小,或下划放大。

您可以通过调用 UiSettings.setZoomGesturesEnabled(boolean) 停用缩放手势。这对用户是否能使用缩放控件执行缩放操作并无影响。

滚动(平移)手势

用户可通过用手指拖动地图来四处滚动(平移)地图。您可以通过调用 UiSettings.setScrollGesturesEnabled(boolean) 停用滚动手势。

倾斜手势

用户可通过将两指置于地图上,然后同时下移或上移来相应增大或减小倾斜角度。您可以通过调用 UiSettings.setTiltGesturesEnabled(boolean) 停用倾斜手势。

旋转手势

用户可通过将两指置于地图上,然后做出旋转动作来旋转地图。您可以通过调用 UiSettings.setRotateGesturesEnabled(boolean) 停用旋转手势。