在实际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; } } } }
附件是该项目源码,,分享一下。。。。。
相关推荐
用来在地图上做操作GIS,在地图上做标记, 在地图上画区域
该范例主要是用SuperMap iObjects Java实现地图匹配,在地图匹配之前需要先进行地图预处理,地图匹配主要是分析GPS点集合是否在道路上。
1.JAVA开发的电子地图 2.Java地图编辑器 3.MapXtreme+for+Java例子集+from+MapInfo+KnowledgeBase 4.mapxtreme+for+java+的开发实例 5.有注解.入门用
java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现...
tag,标记库,java技术tag,标记库,java技术
java 电子 地图 模块 商业项目源码
本代码是基于java语言编写的,以衡阳市为示例,将文本的数据转换为地图的图形形式显示出来!!!!
java百度地图瓦片批量下载demojava百度地图瓦片批量下载demo
基于Java的电子地图系统源代码,简单好用,大家学习
Java地图编辑器方便刚学者创建地图,JAVA
地图应用程序是一种常见的应用,它可以使用地图API来显示地理位置数据、路线、标记等信息。在这个实战博客中,我们将创建一个简单的Java地图应用程序,演示如何使用地图API来显示地图和标记。我们将使用Java编程语言...
springboot+maven项目。实现了天地图矢量和影像底图瓦片图片的获取、叠加、图片融合拼接等功能;测试类TianDiTuDownload_ds
JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图JAVA+贝多地图
非智能手机,离线地图,java安装包,解压后使用。
自己总结的java不完全技术地图,有需要的可以看看
百度地图自定义地图切片java代码,可运行作为工具使用,建议原图使用png格式
包含报告,答辩ppt,以及完整Java代码。程序有可视化界面,可以图形化显示着色过程。本程序通过回溯法实现了中国地图着色问题(4色),并研究了优化算法
基于Java的地图工具 有研究或探讨或开源的请加群:37424970 或联系本人MSN或邮箱:zhuseahui@yahoo.com.cn
java判断百度地图的点是否在多边形区域内,这是完整的demo