java清除地图道路信息
来源:互联网 发布:ctos 软件 编辑:程序博客网 时间:2024/05/23 19:28
在实际web项目中,有些时候需要使用到离线地图,有些时候需要清除地图上的某些不需要的地理信息,比如道路,因为在实际使用时需要在地图上画线,这些线的颜色会和地图的道路颜色冲突,导致界面很乱。
但是下载的离线地图又没有清除道路的功能,只能手动清除了。
使用java分析地图图片,找到道路颜色,把道路颜色替换成地图的颜色,,,我这里只是把道路的颜色弄淡即可,,分析一下流程,首先我使用颜色拾取器在地图上找到道路的颜色,因为道路的颜色有深有浅,所以道路的颜色是一个范围,通过颜色拾取器找到很多适合的点,把红绿蓝算一个平均值,并且算出三原色的相对偏移量,只有当程序获取到的颜色值介于平均值的相对偏移量之间才会替换。
替换前的图片:
替换后的效果:
关键代码如下:
- BufferedImage bi = ImageIO.read(a);
- for (int i = 0; i < bi.getWidth(); i++) {
- for (int j = 0; j < bi.getHeight(); j++) {
- Color biColor = ImageUtil.parseColor(bi.getRGB(i, j));
- for(ColorDemo demo: colorDemos){
- //计算两个颜色的红绿蓝的偏移量
- int rOffset = Math.abs(biColor.getRed() - demo.getColor().getRed());
- int gOffset = Math.abs(biColor.getGreen() - demo.getColor().getGreen());
- int bOffset = Math.abs(biColor.getBlue() - demo.getColor().getBlue());
- //判断偏移量与道路颜色范围内的偏移量是否匹配
- if(rOffset <= demo.getRedOffset() && gOffset <= demo.getGreenOffset() && bOffset <= demo.getBlueOffset()){
- // System.out.println(i+","+j+" from:"+srcColor.getRGB()+"to"+targetColor.getRGB());
- bi.setRGB(i, j, targetColor.getRGB());
- break;
- }
- }
- }
- }
该转换工具的源码在我ITEye博客中有下载,地址:http://huiyanlihao.iteye.com/blog/2302984
我在ITEye的博客,http://huiyanlihao.iteye.com/,欢迎大家踩踩,,,
0 0
- java清除地图道路信息
- 杭州卫星地图 百度卫星地图(含道路、标签信息叠加)
- 南京地图全图 南京卫星地图下载 百度高清卫星地图含道路、标签信息叠加
- 如何清除注册表中的Java安装信息
- 如何清除注册表中的Java安装信息
- 使用Google Roads API抓取道路信息(java实现)
- 上海高清卫星地图 百度卫星地图(含标签、道路信息、地名等数据叠加显示)
- 谈谈地图中的道路绘制
- 百度道路信息爬取
- Java清除图片中的恶意信息(利用jmagick)
- iOS 百度地图 轨迹记录 道路贴合
- Java职业道路以及技术学习道路
- 强制清除节点信息
- 清除远程桌面信息方法
- aix清除报警信息
- 手动清除CRS信息
- IOS 清除svn信息
- 清除svn信息
- 新手设计一款简单的计算器需要哪些知识
- Walker 之侧滑菜单
- lambda
- hdu2546-01背包
- 【读书笔记】scikit-learn Cookbook
- java清除地图道路信息
- Ionic和AngularJS实现移动端APP前端
- Eclipse安卓奇怪编译问题解决记事
- javascript-第四节-冒泡排序、数组函数
- 【Poj2825】Perfect Permutation 构造
- developer.android.com 专业英语解读
- Tomcat7的下载及安装
- 【中山市选2008】矩阵
- 血条HpBar跟随敌人