控件和手势

请选择平台: Android iOS JavaScript

利用 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 图标,具体取决于地图的内容,并且仅在 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) 停用旋转手势。