上文我们说到简单绘制色斑图(卫星云图),但那种效果可定不符合要求,一般来说,客户需要的是在地图上色斑图的叠加,或者是将图片导出分别是这两种效果
当然还有一种是将边界上的数据去除掉,例如下图,这种是数据生成色斑图,不适用卫星,所以卫星云图不会裁剪数据,留到下节说明
首先说第一种,在前端geoserver上叠加图层的实现方式
MeteoDataInfo meteo = new MeteoDataInfo(); meteo.openAWXData("D:\\Download\\ANI_VIS_R04_20210812_0800_FY2G.AWX"); GridData grid = meteo.getGridData(); //色阶文件 String colorPath = "D:\\apache-tomcat-8.0.50\\alt色阶\\AWX.pal"; //绘制图层 RasterLayer layer = DrawMeteoData.createRasterLayer(grid, "",colorPath); //创建视图 MapView view = new MapView(); //叠加图层 view.addLayer(layer); MapLayout layout = new MapLayout(); //去除图形边框 layout.getActiveMapFrame().setDrawNeatLine(false); //区域边界 Extent extent = view.getExtent(); //设置矩形的宽和高 Rectangle bounds = new Rectangle(800, (int) (800 * 1D / extent.getWidth() * extent.getHeight())); //设置地图边框 layout.setPageBounds(new Rectangle(0, 0, bounds.width, bounds.height)); //设置页面边框 layout.getActiveMapFrame().setLayoutBounds(new Rectangle(0, 0, bounds.width, bounds.height)); layout.getActiveMapFrame().setMapView(view); layout.exportToPicture(PathUtil.getDeskPath()+"/2.png");