隔点预报GRIB绘制等值线矢量图区域切割(三)
接着上次绘制出来的图形放在地图上看看效果
因为grib 文件覆盖全四川,但是由于它是矩形而非多边形所以在地图上就显示出一个矩形图片覆盖,非常不友好且难看。所以我决定在做进一步优化处理。
思路: 现目前图形已经绘制出来了,现在要做的是把,四川这个边界给扣出来,在将扣出来的图形绘制出来保存一个背景透明的png 图片
解决步骤1:首先要知道四川这个边界的经纬度是多少?
在网上搜索资源,搜索出来一个全国的地区边界经纬度。
在CSDN 下载的,不过要积分在此我下载好了贡献出来:https://pan.baidu.com/s/1NEeEIIAZfcKQhRj68hrUyw dhf4
2,将下载好的边界转化为多边形进行抠图:
/**读取Txt 文本*/public static String readTxt(String path) {
StringBuilder result = new StringBuilder();
try{
BufferedReader br = new BufferedReader(new FileReader(new File(path)));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
result.append(System.lineSeparator()+s);
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result.toString();
}
/**再将文本信息转化为多边形经纬度集合*/
public static List<GeoPoint> getGeoPoint(String str){
List<GeoPoint> list = new ArrayList<GeoPoint>();
String[] locs = str.split("[;]");
for (String string : locs) {
String[] tempLoc = string.split(",");
list.add(new GeoPoint(Double.parseDouble(tempLoc[1]),Double.parseDouble(tempLoc[0])));
}
return list;
}
在进行切割绘制
public static void tailoring(Graphics2D graphics2d,Polygon polygon,Polygon tailoring) { Area area = new Area(polygon);
Area area2 = new Area(tailoring);
area.subtract(area2);
graphics2d.setColor(new Color(255,255,255));
graphics2d.fill(area);
}
最后看看切割效果
放在地图上看看效果如何
完美~~~
以上是 隔点预报GRIB绘制等值线矢量图区域切割(三) 的全部内容, 来源链接: utcz.com/z/518855.html