Gis分析POI空间聚合设计思路及示例实现源码

前些时候领导让我们提前预言商业智能gis分析以及物流交通相关的业务。其中有个重要的技术就是 POI空间聚合。从网上找了些资料,大多是E文的,而且说的都巨复杂,不是特别容易理解。多亏了google,哥们后来无意中发现了一个esri做的一个聚合示例。 http://www.esrichina-bj.cn/market/H1N1/H1N1.swf ,哈哈如获至宝,通过httpwatch找到数据来源,发现他是通过客户端做聚合运算的。flex的引擎下几百个点的运算速度相当不错。而且聚合的效果也相当的明显。唯一不足的是
摘要由CSDN通过智能技术生成

前些时候,公司领导让我们提前预言商业智能gis分析以及物流交通相关的业务,并提供了几个国外的业务网站做参考,其中一个就是我上片文章提到的spacialKey(有兴趣的哥们可以读一下,不知道我的那个过期了没有。申请测试key也很方便。http://blog.csdn.net/chaiqi/archive/2010/06/01/5640144.aspx)。无论是gis分析、还是交通统计。这里面有个重要的技术就是 POI空间聚合。从网上找了些资料,大多是E文的,而且说的都巨复杂,不容易理解。

 

多亏了google,哥们后来无意中发现了一个esri做的一个聚合示例。 http://www.esrichina-bj.cn/market/H1N1/H1N1.swf ,哈哈如获至宝,通过httpwatch找到数据来源,发现他是通过客户端做聚合运算的。flex的引擎下几百个点的运算速度相当不错。而且聚合的效果也相当的明显。唯一不足的是,他是相对的屏幕坐标进行聚合运算的。也就是最大也就是1440*900(呵呵这是我的电脑分辨率)。所以每次移动屏幕,聚合的点都会因为吸收或者抛弃屏幕外新的POI而发生聚合变化,变来变去给人的感受不是很爽。而且从分析来看,这种运算是根据每次拖动地图的px来进行,也就是稍稍的拖动一次地图就会有大规模的聚合运算(代表大的for循环)。当然如果用js来实现的话可远远达不到这个效果。

 

 

有了参考的样本和示例,呵呵,信心增强了不少。这世界上最难得就是创新,只要见别人实现过,研究研究就有门。

注:gis圈小的很,正好有个特好的哥们在esir(哈,我们以前还一个宿舍住过呢) 正好要了些算法看了看。

 

这次预言开发我决定用flex试试看以前没有用过flex,初次接触起来感觉也还凑活,有点像java和js的结合体,都是高级预言算法语法也基本相通没啥难的。导入eclips工程,算法还是基本都能看明白的。梳理了一遍,并不是很复杂。

 

我对算法做了一部分改进。目的是解决拖动时候,聚合不停变化,给人不舒服的感觉,其实也就做了3步:

 

1、去掉了拖动地图聚合运算相应。改为了缩放比例尺时请求运算,这样能增加效率,甚至日后可以都放到服务端算提前聚合,这样速度就快多了。

2、聚合时用到的相对屏幕坐标,改为相对比例尺的原点坐标。这样就不会变来变去了。

3、更换了我们的flex 地图api 显示模式 ,增加了部分功能。

 

呵呵,个人感觉比esir做的要好。改天要些大数据,搞个 国家厕所分布图。

 

 

先给大家来点直观的插图: 

 

 

点击可查看聚合得点。以及POI的位置,这点学spaclateKey的呵呵。

 

 

聚合前 3个聚合圆

 

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值