利用 Maps SDK for Android,您可以确定将哪些内置界面组件显示在地图上以及允许哪些手势,从而对用户与地图进行互动的方式进行自定义。
代码示例
GitHub 上的 ApiDemos 代码库包含一个展示如何使用控件和手势选项的示例:
- UiSettingsDemoActivity:Kotlin 示例
- UiSettingsDemoActivity:Java 示例
用户互动功能最少的精简模式
如果您需要用户互动功能最少的轻型地图,可以考虑使用精简模式地图。精简模式以指定缩放级别提供地图指定位置的位图图像。在精简模式下,用户无法平移或缩放地图,且手势不起作用。如需了解详情,请参阅有关精简模式的指南。
界面控件
Maps API 提供的内置界面控件与您 Android 手机上的 Google 地图应用中提供的控件类似。您可以使用 UiSettings
类(可使用 GoogleMap.getUiSettings
方法从 GoogleMap
中获取)切换这些控件的显示状态。对该类所做的更改会立即体现在地图上。如需查看这些功能的示例,请查看示例应用中的界面设置演示版 activity。
如果地图是通过 XML 属性或使用 GoogleMapOptions
类创建的,您也可以配置其中的大部分选项。如需了解详情,请参阅配置初始状态。
每个界面控件都有一个相对于地图边缘的预设位置。通过向 GoogleMap
对象添加内边距,即可加大控件与顶部、底部、左侧或右侧边缘的距离。
缩放控件
Maps API 提供的内置缩放控件显示在地图右下角。这些控件默认处于停用状态,但可通过调用 UiSettings.setZoomControlsEnabled(true)
启用。
![位于右下角的缩放控件。 缩放控件](https://developers.google.cn/static/maps/documentation/android-sdk/images/zoomcontrols.png?authuser=9&hl=sk)
罗盘
Maps API 提供的罗盘图形会在特定情况下显示在地图左上角。仅当镜头朝向的方向角或倾斜度不为零时,才会显示罗盘。用户点击罗盘时,镜头会移动并恢复到方向角和倾斜度为零的(默认朝向)位置,随后罗盘会逐渐消失。您可以通过调用 UiSettings.setCompassEnabled(boolean)
完全禁止罗盘显示。不过,您无法强制罗盘始终显示。
![位于左上角的罗盘。 罗盘](https://developers.google.cn/static/maps/documentation/android-sdk/images/compass.png?authuser=9&hl=sk)
“我的位置”按钮
仅当启用了“我的位置”图层时,“我的位置”按钮才会显示在屏幕右上角。如需了解详情,请参阅有关位置数据的指南。
![位于右上角的“我的位置”按钮。 “我的位置”按钮](https://developers.google.cn/static/maps/documentation/android-sdk/images/mylocationbutton.png?authuser=9&hl=sk)
楼层选择器
默认情况下,当用户查看室内地图时,楼层选择器会显示在靠近屏幕中心右侧边缘的位置。当显示两个或多个室内地图时,楼层选择器将应用于当前获得焦点的建筑物,通常是最靠近屏幕中心的建筑物。每栋建筑物都有一个默认楼层,选择器首次显示时会定位在此楼层。用户可以通过该选择器选择不同的楼层。
您可以通过调用 GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean)
停用或启用楼层选择器控件。
如果您想用自己的楼层选择器替换默认楼层选择器,便可执行这项操作。
![靠近中心右侧的楼层选择器。 楼层选择器](https://developers.google.cn/static/maps/documentation/android-sdk/images/levelpicker.png?authuser=9&hl=sk)
地图工具栏
默认情况下,当用户点按标记时,工具栏会显示在地图右下角。用户可以通过工具栏快速访问 Google 地图移动应用。
您可以通过调用 UiSettings.setMapToolbarEnabled(boolean)
启用和停用工具栏。
在精简模式地图中,无论用户执行什么操作,该工具栏都一直存在。在完全互动地图中,该工具栏会在用户点按标记时滑入,在标记失去焦点时再次滑出。
通过选择该工具栏中的图标,用户可以在 Google 地图移动应用中查看地图或查找路线。当用户点按该工具栏上的图标时,API 会构建一个 intent,以启动 Google 地图移动应用中的相应 activity。
![位于右下角的工具栏。 地图工具栏](https://developers.google.cn/static/maps/documentation/android-sdk/images/intents.png?authuser=9&hl=sk)
在以上屏幕截图中,工具栏显示在地图右下角。地图上可能不显示任何 intent 图标,或者显示一个或两个 intent 图标,具体取决于地图的内容,并且仅在 Google 地图移动应用支持生成的 intent 时才会显示图标。
地图手势
利用 Maps SDK for Android 创建的地图支持与 Google 地图应用相同的手势。不过,在某些情况下,您可能希望停用某些手势,以便保持地图的状态。您还能以程序化方式设置缩放、平移、倾斜度和方位角。如需了解详情,请参阅镜头和视图。请注意,停用手势对您是否能以程序化方式更改镜头位置并无影响。
与界面控件类似,您也可以通过 UiSettings
类(可通过调用 GoogleMap.getUiSettings
从 GoogleMap
中获取)启用/停用手势。对该类所做的更改会立即体现在地图上。如需查看这些功能的示例,请查看示例应用(请参阅此处,了解安装方法)中的界面设置演示版 activity。
如果地图是通过 XML 属性或使用 GoogleMapOptions
类创建的,您也可以配置这些选项。如需了解详情,请参阅配置地图。
缩放手势
地图可对各种能够改变镜头缩放级别的手势作出响应:
- 点按两次可使缩放级别增加 1(放大)。
- 双指点按可使缩放级别减少 1(缩小)。
- 双指张合/拉伸。
- 通过两次点按实现单指缩放,第二次点按时按住,然后上划缩小,或下划放大。
您可以通过调用 UiSettings.setZoomGesturesEnabled(boolean)
停用缩放手势。这对用户是否能使用缩放控件执行缩放操作并无影响。
滚动(平移)手势
用户可通过用手指拖动地图来四处滚动(平移)地图。您可以通过调用 UiSettings.setScrollGesturesEnabled(boolean)
停用滚动手势。
倾斜手势
用户可通过将两指置于地图上,然后同时下移或上移来相应增大或减小倾斜角度。您可以通过调用 UiSettings.setTiltGesturesEnabled(boolean)
停用倾斜手势。
旋转手势
用户可通过将两指置于地图上,然后做出旋转动作来旋转地图。您可以通过调用 UiSettings.setRotateGesturesEnabled(boolean)
停用旋转手势。