爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3047|回复: 3

maskout数据出来的结果边缘很多锯齿,怎么解决?

[复制链接]

新浪微博达人勋

发表于 2016-7-21 11:06:40 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
一样的数据,maskout图形出来的结果就没有边缘的锯齿。请问怎么解决边缘锯齿,像maskout图形出来的结果一样?因为我要导出kml数据,在地图上面显示。

maskout数据 12345.png



maskout图形
2343.png


maskout数据导出KML,叠加地图效果
33333.jpg

  1. MapLayer countryLayer = MapDataManage.loadLayer("F:/MeteoInfo_Java_1.3.3R3_Files/MeteoInfo/map/bou2_4p.shp");
  2.                                         PolygonBreak lb = (PolygonBreak)countryLayer.getLegendScheme().getLegendBreaks().get(0);
  3.                                         lb.setDrawFill(false);
  4.                                         //lb.setOutlineColor(Color.blue);
  5.                                         mapFrame.addLayer(countryLayer);
  6.                                        
  7.                                         MapLayer chinaLayer = MapDataManage.loadLayer("F:/MeteoInfo_Java_1.3.3R3_Files/MeteoInfo/map/china.shp");
  8.                                         //chinaLayer.setMaskout(true);
  9.                                          lb  = (PolygonBreak) chinaLayer.getLegendScheme().getLegendBreaks().get(0);
  10.                                         lb.setDrawFill(false);
  11.                                         lb.setOutlineColor(Color.blue);
  12.                                         mapFrame.addLayer(chinaLayer);
  13.                                        
  14.                                         //MapLayer bouLayer = MapDataManage.loadLayer("F:/MeteoInfo_Java_1.3.3R3_Files/MeteoInfo/map/bou1_4l.shp");
  15.                                 //        PolylineBreak lineBreak = (PolylineBreak) bouLayer.getLegendScheme().getLegendBreaks().get(0);
  16.                                         //lineBreak.setColor(Color.cyan);
  17.                                // lineBreak.setSize(2);
  18.                                 //        mapFrame.addLayer(bouLayer);
  19.                                           //Open GrADS data file
  20.                                 String dataDir = "F:/MeteoInfo_Java_1.3.3R3_Files/MeteoInfo/";
  21.                                 String fileName = dataDir + "sample/LonLatStation/AERONET_Stations2.csv";
  22.                                 aDataInfo.openLonLatData(fileName);
  23.                                 StationData  _stationData = aDataInfo.getStationData("Elevation");

  24.                                 Extent aExtent = _stationData.dataExtent;
  25.                                 
  26.                                 aExtent.minX = 73.6786;
  27.                                 aExtent.maxX = 134.71864;
  28.                                 aExtent.minY =17.96961;
  29.                                 aExtent.maxY =53.945184;
  30.                                 
  31.                                 //Interpolate
  32.                                 GridDataSetting aGDP = new GridDataSetting();
  33.                                 aGDP.xNum = 90;
  34.                                 aGDP.yNum = 180;
  35.                                 aGDP.dataExtent=aExtent;
  36.                                 
  37.                                 InterpolationSetting gridInterp = new InterpolationSetting();
  38.                                 gridInterp.setGridDataSetting(aGDP);

  39.                                 gridInterp.setInterpolationMethod(InterpolationMethods.IDW_Radius);
  40.                                 gridInterp.setRadius(20);
  41.                                 GridData gridData = _stationData.interpolateData(gridInterp);
  42.                                     ColorMap cmap=new ColorMap();
  43.                                         Color[] cls={new Color(104,203,0),new Color(0,160,255),new Color(0,200,200),new Color(0,220,0),new Color(160,230,50),new Color(230,220,50)
  44.                                                         ,new Color(230,175,45),new Color(240,130,40),new Color(250,60,60),new Color(240,0,130)
  45.                                         };
  46.                                         cmap.setColors(cls);
  47.                                         List<Number> lst=new ArrayList<Number>();
  48.                                         lst.add(300);
  49.                                         lst.add(600);
  50.                                         lst.add(900);
  51.                                         lst.add(1200);
  52.                                         lst.add(1500);
  53.                                         lst.add(1800);
  54.                                         lst.add(2100);
  55.                                         lst.add(2400);
  56.                                         lst.add(2700);
  57. <font color="#ff0000"><b>                                     GridData t= gridData.maskout((VectorLayer) chinaLayer);//这里maskout数据,</b></font>
  58.                                         LegendScheme aLS = LegendManage.createLegendScheme(t.getMinValue(), t.getMaxValue(), lst, cmap);
  59.                                 //Create a shaded layer
  60.                                 VectorLayer layer = DrawMeteoData.createShadedLayer(t, aLS, "Shaded_PS", "PS", false);
  61.                                
  62.                                 layer.setMaskout(true);

  63.                                          layer.saveAsKMLFile("D:/56735.kml");
复制代码


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-21 11:08:52 | 显示全部楼层
用裁剪功能
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-21 11:14:42 | 显示全部楼层
我用的java代码实现的,请问有相关示例代码吗?
layer.clip((VectorLayer) chinaLayer);
这个函数吗?用了没有效果呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-21 11:36:50 | 显示全部楼层
谢谢王老师,已解决,用裁剪功能。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表