【高德LBS开源组件大赛】地图点聚合

##开源组件名称android

地图点聚合git

##开源组件说明及使用场景github

主要解决地图中点要素不少时候的表示困难的问题。点聚合能够用少许的点或图标来表示地图中的全部点,让地图显示更清晰明朗。api

##开源组件所使用的技术ide

本工程为基于高德地图Android SDK进行封装,实现了Marker聚合效果的例子网站

##Git代码托管地址ui

http://git.oschina.net/lbs/Android_ClusterMarkerthis

##开源组件截图以及安装二维码.net

聚合效果

聚合点点击事件

二维码

开源组件应用下载-Androidcode

##如下为额外信息:

###其余资源连接

###下载资源

示例使用方法:

  • 1:搭建高德地图 AndroidSDK工程方法见配置方法
  • 2:接口使用
  • 初始化聚合和加入要素

<pre><code> //初始化 ClusterOverlay clusterOverlay = new ClusterOverlay(mAMap,dp2px(getApplicationContext(), clusterRadius),getApplicationContext()); for (int i = 0; i < ConstantUtils.latlngs.length; i++) { RegionItem regionItem = new RegionItem(ConstantUtils.latlngs[i], ConstantUtils.names[i]); clusterOverlay.addClusterItem(regionItem); } </code> </pre>

  • 设置监听

<pre><code> ////设置自定义绘制接口和聚合点点击接口 clusterOverlay.setClusterRenderer(this); clusterOverlay.setOnClusterClickListener(this); </code> </pre>

  • 自定义渲染

<pre><code> public Drawable getDrawAble(int clusterNum) { //根据聚合点数目不同对聚合点进行不一样样式的渲染 int radius = dp2px(getApplicationContext(), clusterRadius); if (clusterNum == 1) { return getApplication().getResources().getDrawable( R.drawable.icon_openmap_mark); } else if (clusterNum < 5) { BitmapDrawable drawable = new BitmapDrawable(drawCircle(radius, Color.argb(159, 210, 154, 6))); return drawable; } else if (clusterNum < 10) { BitmapDrawable drawable = new BitmapDrawable(drawCircle(radius, Color.argb(199, 217, 114, 0))); return drawable; } else { BitmapDrawable drawable = new BitmapDrawable(drawCircle(radius, Color.argb(235, 215, 66, 2))); return drawable; } } </pre></code>

  • 聚合点点击事件

<pre><code> public void onClick(Marker marker, List<ClusterItem> clusterItems) { String content = ""; for (ClusterItem clusterItem : clusterItems) { RegionItem item = (RegionItem) clusterItem; content += item.getTitle() + " "; } infoTextView.setText(content); } </pre></code>

相关文章
相关标签/搜索