Posted on 2015-07-19 13:31
Onway 阅读(724)
评论(0) 编辑 收藏 引用 所属分类:
码儿快跑
需求:
地图上Grid对象表示一个40*40的栅格,除了经纬度以外,还有一个指标值如信号强度,以及一个根据指标值确定的渲染颜色。
Road对象是一条矢量道路,由多个经纬度点组成。
如果道路穿过某个栅格,则将穿过栅格的那一小段道路按栅格的颜色值画出来,没有穿过栅格的其他道路部分,用黑色渲染。
第一次做法:
对道路进行预处理,将道路上的各个点归类到其所属的栅格内。
然后将栅格内的点用线连起来。
完成后一看地图,掉坑里面了。
1,一条道路穿过某个栅格,栅格内可能只有一个点,连不成线;
2,一条直线道路,只记录了开头和结尾,中间穿过的栅格就没点了
后来想到用补点的方式,两个点超过20米就补一个
简单试了一下,效果不好就开始用第二种方法
第二次做法:
先将道路在空白bitmap上画出来,颜色用黑色;
再将栅格在另一空白的bitmap上画出来,颜色用原本的栅格颜色;
对比两张bitmap,像素同时不为0的就是相交像素,用栅格的像素颜色复制到道路的像素里面;
效果杠杠的。
其他方法:
在讨论组里面说了以后,发现另一种是预处理做法
判断两点之间跟栅格的相交,将相交点记录到所在栅格里面,这比较适合后台。
以后还是默默写博客吧!