一切就绪!

着手开发前,请先阅读我们的开发者文档

激活 Google Maps Android API

为帮助您起步,我们将引导您在 Google Developers Console 中先完成几项任务:

  1. 创建或选择项目
  2. 激活 Google Maps Android API
  3. 创建相应密钥
继续

Google Maps Android API Utility Library

正寻求为您的地图添加高级功能吗?Google Maps Android API Utility Library 是适用于各类应用的开源类库。GitHub 存储区中提供的实用程序类和演示版应用说明了每个类的用法。

在这段视频中,Chris Broadfoot 将介绍这个实用程序库,其中将重点介绍多段线解码、球面几何学和气泡图标。

快速安装

将以下依赖项添加至应用的 Gradle 构建文件:

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.4+'
}

有关更多详情,请参阅安装指南

实用程序

一幅包含 GeoJSON 叠层的地图

将 GeoJSON 导入您的地图

您可以 GeoJSON 格式存储特征,然后使用此实用程序将它们渲染为覆盖在地图上的叠层。调用 addLayer() 可向地图添加您的 GeoJSON 数据。您还可以通过调用 addFeature(),传入 GeoJsonFeature 对象来添加个别特征。

如需了解详情,请参阅有关 Google Maps Android GeoJSON Utility 的文档。

一幅包含 KML 叠层的地图

将 KML 导入您的地图

您可以利用该实用程序将 KML 对象转换为地理形状,并将它们渲染为覆盖在地图上的叠层。调用 addLayerToMap() 可向地图添加您的叠层。您可以通过对任何 Placemark、GroundOverlay、Document 或 Folder 调用 getProperties() 来访问 KML 对象中的属性。

如需了解详情,请参阅有关 Google Maps Android KML Utility 的文档。

一幅包含热图的地图

向您的地图添加热图

热图便于查看者了解地图上数据点的分布和相对密度。热图不是在每个位置放置标记,而是利用颜色和形状来表示数据的分布。创建一个 HeatmapTileProvider,向其传递 LatLng 对象集,其中的对象表示地图上的关注点。然后新建一个 TileOverlay,向其传递热图图块提供程序,然后向地图添加图块叠层。

如需了解详情,请参阅有关 Google Maps Android Heatmap Utility 的文档。

一幅包含气泡图标的地图

通过气泡图标定制标记

添加一个 IconGenerator,以便在标记上显示零星信息。此实用程序可让您的标记图标有些类似于信息窗口,因为标记本身就包含文本和其他内容。其优点在于,您可以让多个标记同时保持打开状态,而信息窗口则同时只能打开一个。您还可以设置标记样式、更改标记和/或内容的朝向以及更改标记的背景图像/九宫格图像。

一幅包含聚类标记的地图

管理标记聚类

ClusterManager 可帮助您管理不同缩放比例的多个标记。也就是说,即便您在地图上放置大量标记,也不会使地图变得难以查看。当用户在高缩放比例下查看地图时,各个标记会显示在地图上。当用户缩小到较低缩放比例时,这些标记会聚拢形成聚类,以方便地图的查看。

如需了解详情,请参阅有关 Google Maps Android Marker Clustering Utility 的文档。

一幅包含编码多段线的地图

编码和解码多段线

PolyUtil 用于在编码多段线和多边形与纬度/经度坐标之间进行双向转换。

在 Google 地图中,定义多段线或多边形的纬度和经度坐标以编码字符串形式存储。请参阅对多段线编码的详细说明。您收到的编码字符串可能来自 Google Maps Directions API 等 Google API 的响应。

您可以利用 Google Maps Android API Utility Library 中的 PolyUtil 将纬度/经度坐标序列(“LatLngs”)编码成一个编码路径字符串,以及将编码路径字符串解码成 LatLngs 序列。这可以确保与 Google Maps API 网络服务的互操作性。

地图上两点间的计算距离

通过球面几何学计算距离、面积和方位

您可以利用 SphericalUtil 中的球面几何学实用程序根据纬度和经度计算距离、面积和方位。以下是该实用程序中提供的部分方法:

  • computeDistanceBetween() – 返回两个纬度/经度坐标之间的距离(单位:米)。
  • computeHeading() – 返回两个纬度/经度坐标之间的方位(单位:度)。
  • computeArea() – 返回地球上某个闭合路径的面积(单位:平方米)。
  • interpolate() – 返回位于两个给定点之间几分之一距离处的点的纬度/经度坐标。举例来说,您可以利用它以动画方式呈现两点间的标记。

请参阅参考文档,了解该实用程序提供的所有方法。

发送以下问题的反馈:

此网页
Google Maps Android API
Google Maps Android API
需要帮助?请访问我们的支持页面