Maps SDK for Android 实用程序库

请选择平台: Android iOS

想要为您的地图添加高级功能?Maps SDK for Android 实用程序库是一个开源库,包含可用于各种应用的类。GitHub 代码库中则包含丰富的实用程序类,里面还有一款演示版应用说明了每个类的用法。

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

快速设置

如需安装 Maps SDK for Android 实用程序库,请按照设置指南进行操作。

实用程序

一幅包含 GeoJSON 图层的地图

将 GeoJSON 导入您的地图

您可以用 GeoJSON 格式存储地图项,然后使用此实用程序将它们渲染为覆盖在地图上的图层。调用 addLayer() 即可将 GeoJSON 数据添加到地图中。您也可以通过调用 addFeature() 并向此函数中传入 GeoJsonFeature 对象来添加具体的地图项。

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

一幅包含 KML 图层的地图

将 KML 导入您的地图

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

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

一幅包含热图的地图

向您的地图添加热图

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

如需了解详情,请参阅有关 Google Maps Android 热图实用程序的文档。

一幅包含气泡图标的地图

通过气泡图标自定义标记

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

一幅包含聚类标记的地图

管理标记聚类

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

如需了解详情,请参阅有关 Google Maps Android 标记聚类实用程序的文档。

一副包含多个图层的地图

向同一地图添加多个图层

您可以在同一个地图上显示来自 GeoJSON、KML 和聚类的地图项,以及您自己的标记、多段线和多边形。还可以通过向每个图层添加点击监听器来让这些图层支持互动。只需将 MarkerManagerGroundOverlayManagerPolygonManagerPolylineManager 类实例化,并在设置它们时将它们传递给 GeoJsonLayerKmlLayerClusterManager 的构造函数即可。然后,您可以直接使用上面的 Manager 类,将自己的标记、多段线和多边形添加到地图中。

如需了解详情,请参阅有关 Google Maps Android 多图层演示的文档

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

对多段线进行编码和解码

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

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

可以使用 Maps SDK for Android 实用程序库中的 PolyUtil 将纬度/经度坐标(“LatLngs”)序列编码成一个路径字符串,还可使用此实用程序将这个经过编码的路径字符串解码成 LatLngs 序列。这可以确保与 Google Maps API 网络服务的互操作性。

计算得出的地图上两点间距离

通过球面几何图形计算距离、面积和方向角

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

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

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