在实际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在Java环境下的基础,包括地图标记、区域绘制以及网络请求的调试。学习者可以通过解析和运行其中的代码,了解和掌握如何使用Java进行地图开发,同时也能提升在GIS领域的编程...
地图预处理的目的在于提高匹配效率和精度,例如,消除地图中的噪声,处理缺失或不一致的数据,以及处理不同来源数据之间的差异。 地图匹配的过程主要是对GPS点集合进行分析,检查这些点是否落在已知的道路网络上。...
4. **图层管理**:地图可以由多个图层组成,每个图层可能包含不同类型的地理信息,如道路、建筑物、水体等。Java编辑器应提供图层的添加、删除、隐藏和显示功能。 5. **缩放与平移**:用户需要能自由地放大、缩小...
java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现...
在IT行业中,尤其是在Java开发领域,"标记库"(Tag Library)是一个重要的概念,它与JSP(JavaServer Pages)紧密相关。标记库是预定义的一组功能,以标签(Tags)的形式提供,使得开发者可以更方便地创建动态网页。...
综上所述,"jsp,java实现谷歌地图,查询地图功能"项目涵盖了JSP基础、Servlet交互、Google Maps API集成、地图查询功能实现等多个关键知识点。通过学习和实践这些内容,开发者可以构建出功能丰富的地图应用,提供...
6. **用户交互**:地图应用需要提供缩放、平移、标记添加、路线规划等功能,这需要处理鼠标事件和触摸事件,并更新地图视图。 7. **服务接口**:WMS(Web Map Service)和WFS(Web Feature Service)是常见的GIS...
总之,"Java 学习案例,电子地图模块"是一个综合性的项目,涵盖了GUI设计、数据处理、GIS应用、网络编程、性能优化等多个方面,对于提升Java开发者的技术能力具有很高的实践价值。通过深入学习和实践这个案例,...
在Java编程中,使用百度地图API来获取经纬坐标并实现图例显示是常见的地理信息系统(GIS)应用。本文将深入探讨这一主题,帮助初学者掌握关键知识点。 首先,要使用百度地图API,你需要在百度地图开放平台...
【JAVA制作的应用电子地图...它的实现涉及到了Java基础、图形用户界面设计、地图数据处理等多个领域,展示了Java作为一款全能编程语言的强大功能。用户只需简单几步操作,就能享受到由Java技术带来的便捷电子地图服务。
【标题】:“1.(地图数据篇)天地图瓦片数据爬取--java代码.zip” 涉及的知识点主要集中在地图数据的获取以及Java编程技术上,特别是网络爬虫在处理地图瓦片数据时的应用。 【地图瓦片数据】: 地图瓦片是一种将...
- **JavaScript**:用于实现地图交互功能,如缩放、平移、标记、图层控制等。通常会使用GIS库,如OpenLayers、Leaflet或Esri的ArcGIS JavaScript API。 - **AJAX**:异步JavaScript和XML,用于实现页面无刷新的...
2. **创建MapPanel**:在Java代码中,你需要创建一个MapPanel实例,配置地图服务的URL和其他参数,如地图类型、缩放级别等。 3. **设置地图事件监听器**:MapPanel支持各种交互操作,如拖动、缩放等。你可以添加...
综上所述,"使用Java开发手机电子地图系统"涵盖了Java编程、Android框架、地图API使用、定位技术、路径规划算法、数据存储与网络通信、用户界面设计等多个方面,对于开发者来说,这是一次综合性的技术实践。...
10. **事件处理和用户交互**:Java代码会监听用户的触摸事件,如拖动地图、缩放、点击标记等,响应这些事件执行相应的操作。 11. **版本控制**:可能包含的版本控制文件(如.gitignore或.git目录),表明代码可能从...
总结起来,使用Java和OpenCV进行图片对比及差异标记涉及到图像读取、像素级比较、阈值处理、颜色标记等多个环节。通过理解这些基本概念和技术,你可以创建自己的图像比较工具,适用于各种场景,例如监控系统中的异常...
自己总结的java不完全技术地图,有需要的可以看看
SuperMap Objects Java是一款强大的地图开发工具,它为开发者提供了丰富的API和功能,以实现地图的显示、编辑、分析等功能。本文将深入探讨如何利用SuperMap Objects Java进行地图缓存的分幅创建,提升地图浏览的...
【JAVA 地图编辑器V0.1】是一款基于Java编程语言开发的工具,主要用于地图的编辑和管理。它提供了一种便捷的方式来修改、创建和操纵游戏中的虚拟地形,尤其适用于那些依赖地图进行游戏体验的项目,如Minecraft等沙盒...
Java移动地图开发