本篇文章主要介绍如何在百度地图上添加Overlay(即图层或覆盖物)。
Overlay简介
Overlay通常被译为“图层”或“覆盖物”。那么对于地图而言,什么称之为覆盖物?“所有叠加或覆盖到地图之上的内容,都被称之为地图覆盖物,如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动。”
为了让大家能够对Overlay有更进一步的认识,我们再通过下面的图形来直观的认识它。 图中标记的那些红色的图标A,B,...,J正是Overlay的其中一种形式。如果你了解PhotoShop中图层的概念,这里应该不难理解。我们可以这样来理解地图、图层与图层上标记物三者的关系: 下图中的那些红色标记并不属于地图的一部分,这些所有的标记是附着在图层上的,然后将图层蒙在地图之上。
百度地图API提供的几种Overlay
百度地图API提供了以下几种Overlay(覆盖物):
1)Overlay:它是所有覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示;
2)MyLocationOverlay:一个负责显示用户当前位置的Overlay;
3)ItemizedOverlay:它包含了一个OverlayItem列表,相当于一组分条的Overlay,通过继承此类,将一组兴趣点显示在地图上;
4)PoiOverlay:本地搜索图层,提供某一特定地区的位置搜索服务,比如在北京市搜索“公园”,通过此图层将公园显示在地图上;
5)RouteOverlay:步行、驾车导航线路图层,将步行、驾车出行方案的路线及关键点显示在地图上;
6)TransitOverlay:公交换乘线路图层,将某一特定地区的公交出行方案的路线及换乘位置显示在地图上。
ItemizedOverlay的使用示例
ItemizedOverlay提供了一种快捷的方法,可以把标记图片和相关的文本分配给特定的地理位置。ItemizedOverlay实例可以处理每一个OverlayItem标记的绘制、放置、单击处理、焦点控制和布局优化。例如,上面的那个地图示例就是ItemizedOverlay。
下面将通过一个示例来演示ItemizedOverlay的使用。我们先来看看最终做出的效果,如下图所示:
我们的目标:“显示出百度地图,并且给地图添加一个图层(ItemizedOverlay),该图层上有两个标记项(OverlayItem),每个标记项上都标注有相应的图标、文本信息,并且能够响应点击事件(onTap)”。
1)布局文件res/layout/main.xml
2)创建Activity继承com.baidu.mapapi.MapActivity
3)创建自定义的Overlay继承ItemizedOverlay
4)配置AndroidManifest.xml