如何理解Java MeteoInfo解析与绘图代码教程
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"如何理解Java MeteoInfo解析与绘图代码教程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何理解Java MeteoI
千家信息网最后更新 2025年01月19日如何理解Java MeteoInfo解析与绘图代码教程
这篇文章主要讲解了"如何理解Java MeteoInfo解析与绘图代码教程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何理解Java MeteoInfo解析与绘图代码教程"吧!
最近太忙了,终于有时间继续写了,上文说到了基本上的绘图方法,但缺少色阶呈现,一般图叠加着地图上,后端不需要管色阶,但也要注意web页面色阶和我们的生成色阶一定要对的上
对于后端导出图片的话,就需要添加色阶了,这一文很简单,就涉及色阶,名称,网格刻度线
顺便对代码我进行了优化,看起来更直接
MeteoDataInfo meteoDataInfo = new MeteoDataInfo(); meteoDataInfo.openMICAPSData("D:\\解析数据\\cldas\\cldas\\TEM\\20081000.000"); GridData grid = meteoDataInfo.getGridData(); //读取地图A VectorLayer scmap = MapDataManage.readMapFile_ShapeFile("C:\\Users\\Administrator\\Downloads\\好例子网_全国省、县界线shp格式矢量图(精确到县区域)\\全国省、县界线shp格式矢量图(精确到县区域)\\sichuan.shp"); //读取地图B VectorLayer qgmap = MapDataManage.readMapFile_ShapeFile("E:\\shp\\四川\\四川省(3)_市界.shp"); //描述地图边界线 PolygonBreak pb = (PolygonBreak) qgmap.getLegendScheme().getLegendBreak(0); //是否设置填充 pb.setDrawFill(false); //设置轮廓颜色 pb.setOutlineColor(Color.black); //读取色阶 LegendScheme als = LgsUtil.readFromLgs("D:\\apache-tomcat-8.0.50\\alt色阶\\TEM.lgs"); //绘制图层 VectorLayer layer = DrawMeteoData.createShadedLayer(grid,als,"","",true); //创建视图 MapView view = new MapView(); layer = layer.clip(scmap); //叠加图层 view.addLayer(layer); view.addLayer(qgmap); //视图设置 MapLayout layout = new MapLayout(); //去除图形边框 layout.getActiveMapFrame().setDrawNeatLine(true); //抗锯齿 layout.getActiveMapFrame().setMapView(view); view.setAntiAlias(true); layout.setAntiAlias(true); //根据视图计算视图的宽高 Extent extent = view.getExtent(); int size = 800; Rectangle rectangle = new Rectangle(size, (int) (size * 1D / extent.getWidth() * extent.getHeight())); //设置地图区域大小和外边距 int width = rectangle.width; int left = 50; int height = rectangle.height; int right = 140; int top = 50; int bottom = 50; //设置页面边界 layout.setPageBounds(new Rectangle(0, 0, width + left + right, height + top + bottom)); //获取地图框 MapFrame frame = layout.getActiveMapFrame(); //设置布局边界 frame.setLayoutBounds(new Rectangle(left, top, width, height)); //绘制网格刻度线 frame.setDrawGridLine(true); //设置网格间隔值 frame.setGridXDelt(0.5); frame.setGridYDelt(0.5); //设置图例 Rectangle bounds = layout.getActiveMapFrame().getLayoutBounds(); LayoutLegend legend = layout.addLegend(bounds.x + bounds.width + 15, 0); legend.setLegendStyle(LegendStyles.Normal); legend.setTop(bounds.y + (bounds.height - legend.getHeight()) / 2); legend.setLegendLayer(layer); //导出 layout.exportToPicture(PathUtil.getDeskPath()+"/1.png");
以上的方法我只设定了刻度线和色阶,其他的也很简单,我在下面说明一下
标题设定-放到设定好视图大小的后面Rectangle bounds = layout.getActiveMapFrame().getLayoutBounds();layout.addText(title, bounds.x + bounds.width / 2, y, 18);
到目前简单的绘制与设定就没有什么可说的了,基本上的操作在文章里都有了,都是一些样式的东西,这些都是绘制已经进行插值的图片,但在开发中,我们也会遇到天擎和CIMISS直接返回的站点数据,这个怎么绘制下一节说明一下,再后面的章节就是个别问题的研究了
感谢各位的阅读,以上就是"如何理解Java MeteoInfo解析与绘图代码教程"的内容了,经过本文的学习后,相信大家对如何理解Java MeteoInfo解析与绘图代码教程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
代码
绘图
地图
视图
教程
刻度
区域
网格
边界
学习
精确
全国
内容
图片
大小
就是
数据
文章
方法
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
c盘空间不足服务器打不开
旅行世界服务器推荐
狗狗币节点服务器运行
新乡两年制计算机网络技术
家庭宽带网络安全隐患
中兴通讯网络技术工程师南京
网站的数据库丢失
pdq是事实数据库吗
花瓣邮箱pop服务器
如何找回qq群未审核数据库
商洛市农发行网络安全培训
车联网怎么选择服务器
数据库中小数类型
服务器上的防火墙
美国服务器主机交流
sql数据库名隐藏字符
STM32的软件开发模式及特点
我的世界琉璃日月服务器进不去
泰安微信小程序软件开发推荐
用友软件开发商
德惠通用网络技术质量推荐
软件开发没项目
翼盈互联网科技
wow数据库科多兽
长沙互联网电商科技
租用服务器要多少钱
数据库基础b
租服务器会影响网络吗
数据库系统和数据库是一个东西吗
深圳光合维度软件开发