青梅猪马

by LionGG, a GIS Major

 

百度地图之自定义覆盖物(Overlay)

     百度地图提供了默认的Marker作为默认的点标记,或者叫图像标注。除了位置,还支持设置图像Icon,来达到自定义效果。但这个显然比较有限,我们需要更加负责的覆盖物(Overlay)来展示点要素。

本文提供了一种自定义覆盖物,命名为ClusterMarker,类似是一种较为复杂的标记。它除了支持常规的位置(Point),还可以设置文字(Text)和风格(Style),而在Text和Style之间会有一定的映射关系,不同的Text对应不同的Style。而映射关系的接口,同样予以开放,可自行设置。

 构造函数:

     ClusterMarker(point, text, opt_options):point表示位置信息;text表示文字信息;可选参数opt_options是个对象,形如{styles:myStyles,bounds:myBounds},其中styles可以设置自定义风格,如果不设置,则用默认风格(默认更个的图片取自这里);bounds是为了后面的ClusterMarkerer而设置的,比如这假设是几个点的一个聚合时,它可以表示这几个点的范围bounds。

方法接口:

    getPoint() 和 setPoint(point) 用来获取和设置显示的位置。

    getText()  和 setText(text) 用来获取和设置显示的文字。

    getBounds() 和 setBounds(bounds) 用来获取和设置聚合点的范围,如果有的话。

    getCalculator() 和 setCalculator(calculator) 用来获取和设置文字与风格之间映射关系。默认的映射关系是,把文字转换为数字,对10取整,作为对应的风格图片索引。比如text为9,对应index为0的风格;24则对应index为2的风格。

    支持通过addEventListener方法添加click事件的响应。

    关于ClusterMarker命名,首先体现是一种类似Marker的点标记,Cluster的意思主要是积聚,比如Text可以表示,该Point附近积聚了Text个标记等。其实,这是做百度地图版的MarkerCluster的中间产物。代码将会包含在下一篇文章“ClusterMarkerer百度地图版”中。

演示地址:简单示例   复杂示例(设置不同风格)

     怎么找源码,你懂的。原文链接

posted on 2011-03-14 13:57  狮兄  阅读(4023)  评论(2编辑  收藏  举报

导航