转载请声明原文地址:http://blog.csdn.net/sagittarius1988/article/details/52665300

前言

好久没有更新博客了,一直在忙着项目地图实景图聚合的功能。来简单介绍下聚合的效果和实现的方法吧。

效果

先上图看效果


3张效果图,展示了3个地图层级的聚合效果。这里实现的效果,类似高德地图的实景图,有兴趣的小伙伴可以下个高德地图看看实景图的功能,不过高德的实景图效果,看着像是服务器已经将实景图进行按地点归类好的,所以估计也不需要使用聚合算法,实现起来会简单很多。

代码实现

在本项目的功能情景下,我们需要将服务器传回的点,按相互之间的距离进行归类聚合,现在最常见的聚合算法,大概就是K均值算法了。研究了K均值算法后,发现这里有个假定,就是K值是已知的,这显然对地图来说是不适用的,需要修改,使K值随地图的缩放层级和各个点的位置而变化。
这里使用的是百度地图,所以先查看百度地图的sdk,百度其实是有提供点聚合的功能,并且还提供了简单的聚合demo

上图中红框内的就是百度聚合功能的核心api,api里各个类的代码功能,下次再讲解。

有了百度地图的这个api后,对地图点稍做适配,便可实现点的聚合效果了,但是实景图的效果,还是得自己去实现的。

我们知道,百度地图中,要显示效果图中的多个实景图,需使用百度地图中的Marker进行显示。简单的Marker显示,当然难不倒我们,但是当我们自定义好Marker的View后,实景图里的网络图片要怎么显示呢?最开始,我直接使用了ImageLoader(我这里使用的这个库进行图片加载)的
displayImage(String uri, ImageView imageView, ImageLoadingListener listener);
发现虽然logcat中显示已经下载好图片了,但压根就不会对Marker上的图片进行更新。
到百度地图的社区上查找问题,发现百度地图的Marker在你设置了view后,就跟你设置的view没关系了,就是说你无法控制view里的控件来更新Marker。所以说,只能在图片加载完后,再通过重新设置Marker的view,也就是BitmapDescriptor来更新Marker上的图片了。所以这里,我们需要使用图片的url做为key来记录显示的Marker,以便在图片加载完后去更新Marker。
但是测试的效果是,会经常出现部分Marker上图片不更新,看logcat,显示图片加载的task任务经常被cancel。
(晚了,待更新)

转载请声明原文地址:http://blog.csdn.net/sagittarius1988/article/details/52665300

百度地图聚合点的展示相关推荐

  1. 百度地图绘制多边形,展示多边形,计算多边形内障碍物个人,设置不同的状态

    今天开始研究百度地图,主要是描绘各景点区域,然后根据区域的游客数量来判断当前景点的拥挤状态,不多说了,先看看效果图 这是展示效果,用了轮询的方法,每过几秒就访问一下接口,实时更新景区整体的人员流动情况 ...

  2. 百度地图聚合中的marker添加label后移动、放大缩小时label消失的问题download

    最近在做百度地图相关的项目,由于要解决大批量点位渲染的问题,所以使用了聚合MarkerClusterer,但是在使用的过程中,碰到很多问题,例如如何获得已经聚合了的marker.给marker设置了l ...

  3. 百度地图 省市区县 信息展示

    先上效果图(PS:数据为mock数据): 1.一级地图 2.二级地图 3.三级地图 . 4.四级地图 概述 效果图是不是有点多呀,不过能看到这里的估计这些效果图就是你们想要的效果啦,好,下面就来介绍一 ...

  4. 案例1:百度地图api-火车路径展示

    效果图 效果展示说明 B站效果视频 项目说明 这个小demo的下拉框和按钮 使用了layui的样式,你们也可以自己用css写~ 下拉框有两条数据 分别是铁路1 和 铁路2 data.js中有两个变量p ...

  5. 【vue+百度地图】vue项目使用百度地图API(普通展示)

    方法来自大神[超华] 1.进入百度API 操作官网:https://lbsyun.baidu.com 根据官网流程: 登录自己的百度账号-> 申请然后点击邮箱内获取的新链接-> 填写自己需 ...

  6. 360浏览器开启webGL硬件加速解决百度地图3D视角正常展示的解决方案

    WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTM ...

  7. iOS-百度地图聚合

    百度地图的应用也是极为广泛,从基本的定位,大头针的展现到线路的规划等等,但如果地图页面上在某一个区域内展示的大头针过多的话会在地图上面一团一团的都是满满的大头针,或许我们将地图缩小到某个区域之后用户并 ...

  8. android 之 百度地图

    简介 百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力. 功能介绍 功能介绍: 地图展示:包括2D图.卫星图.3D图地图展示. 地图操作:提供控制平移.缩放.底图旋转.变 ...

  9. Vue项目使用百度地图api

    目录 1.百度开发者认证 2.创建应用 3.引用百度地图API文件 4.展示地图 1.百度开发者认证 进入百度地图开放平台 官网,(认证需要身份证号码,人脸识别,手机百度APP,邮箱地址) 注册登录完 ...

最新文章

  1. VC 2.5 与 ESX 3.0.1 之间存在接口问题
  2. 《研磨设计模式》chap12 观察者模式observer(1)模式简介
  3. ssl提高组周六备考赛【2018.10.20】
  4. java list 取几个字段组装成map_24道Java各类常见问题整理
  5. WordPress中输出当前页面SQL语句的方法
  6. 卫星系统——酒店后端全链路日志收集工具介绍
  7. Python排序算法总结
  8. SpringBoot中常见注解
  9. 学***必去的网站“***基地”
  10. java 打印request的原始请求数据
  11. c语言99乘法表 倒三角形书写
  12. ios睡眠分析 卧床 睡眠_使用Swift在HealthKit中进行睡眠分析
  13. 华为电脑和手机一碰传_体验华为“一碰传”高科技,实现手机和电脑互传文件...
  14. 第8届泰迪杯C题问题总结
  15. 实战 Java 第8天:开发商品详情查询接口
  16. linux下iconv()函数的用法
  17. MySQL GIS功能介绍
  18. 【python数据分析实战】城市餐饮店铺选址问题(1)—— 对不同菜系进行比较,并筛选出可开店铺的餐饮类型
  19. (信贷风控九)行为评分卡模型python实现
  20. AP侧,BP侧如何理解?

热门文章

  1. python tomorrow多线程应用
  2. 微型计算机音节,二年级微机下册教案
  3. 此生不戒多巴胺-冲刺日志(第八天)
  4. java任务系统设计_任务调度系统-任务依赖的设计
  5. 基于QPSK的载波同步和定时同步性能仿真,包括Costas环的gardner环
  6. VS未能正确加载 ”Microsoft.VisualStudio.Editor.Implementation.EditorPackate“包错误解决方法...
  7. python表达式3or5的值为_表达式 3 or 5 的值为
  8. 【What if 系列】全球雪封
  9. vue前端导出excel,js-xlsx、xlsxStyle,可设置样式、表格合并;(包含获取excel列数函数、excel合并表格缺少边框处理函数)
  10. buaacoding C.真心话大冒险