爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4408|回复: 5

MeteoInfo Java版二次开发教程三

[复制链接]

新浪微博达人勋

发表于 2013-10-25 10:34:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2015-7-12 17:32 编辑

教程三实现在启动软件后自动加载、设置好相应的地理底图。
在主窗体中加入loadlayer函数,并且设置初始的图形大小和工具选项。

  1. //Set width and heigth
  2.         this.setSize(1000, 650);
  3.         
  4.         //Load layer
  5.         this.loadLayers();
  6.         
  7.         //Set initial tool
  8.         this.jButton_Pan.doClick();



loadLayers中代码如下:

  1. private void loadLayers() {
  2.         try {
  3.             this.layersLegend1.getActiveMapFrame().getMapView().setLockViewUpdate(true);

  4.             //Load country layer
  5.             String mapDir = "E:\\MeteoInfo\\map\\";
  6.             String fileName = mapDir + "country1.shp";
  7.             MapLayer aLayer = MapDataManage.loadLayer(fileName);
  8.             aLayer.getLegendScheme().getLegendBreaks().get(0).setColor(Color.LIGHT_GRAY);
  9.             this.layersLegend1.getActiveMapFrame().addLayer(aLayer);

  10.             //Load river layer
  11.             fileName = mapDir + "rivers.shp";
  12.             aLayer = MapDataManage.loadLayer(fileName);
  13.             PolylineBreak lineBreak = (PolylineBreak) aLayer.getLegendScheme().getLegendBreaks().get(0);
  14.             lineBreak.setColor(Color.cyan);
  15.             lineBreak.setSize(2);
  16.             this.layersLegend1.getActiveMapFrame().addLayer(aLayer);

  17.             //Load City layer
  18.             fileName = mapDir + "CITIES.shp";
  19.             aLayer = MapDataManage.loadLayer(fileName);
  20.             PointBreak pointBreak = (PointBreak) aLayer.getLegendScheme().getLegendBreaks().get(0);
  21.             pointBreak.setColor(Color.red);
  22.             aLayer.setExpanded(true);

  23.             //Load City Name
  24.             VectorLayer cityLayer = (VectorLayer) aLayer;
  25.             LabelSet labelSet = cityLayer.getLabelSet();
  26.             labelSet.setFieldName("NAME");
  27.             labelSet.setAvoidCollision(true);
  28.             labelSet.setLabelAlignType(AlignType.Center);
  29.             labelSet.setYOffset(0);
  30.             labelSet.setLabelFont(new Font("Arial", Font.PLAIN, 14));
  31.             labelSet.setLabelColor(Color.red);
  32.             labelSet.setDrawShadow(false);
  33.             labelSet.setColorByLegend(false);
  34.             cityLayer.addLabels();
  35.             this.layersLegend1.getActiveMapFrame().addLayer(aLayer);

  36.             //Set layout map size
  37.             LayoutMap layoutMap = this.mapLayout1.getActiveLayoutMap();
  38.             layoutMap.setLeft(40);
  39.             layoutMap.setTop(40);
  40.             layoutMap.setWidth(600);
  41.             layoutMap.setHeight(400);

  42.             //Repaint
  43.             this.layersLegend1.getActiveMapFrame().getMapView().setLockViewUpdate(false);
  44.             this.layersLegend1.getActiveMapFrame().getMapView().zoomToExtent(70, 140, 10, 60);
  45.             this.layersLegend1.repaint();
  46.         } catch (IOException ex) {
  47.             Logger.getLogger(FrmMain.class.getName()).log(Level.SEVERE, null, ex);

  48.         } catch (Exception ex) {
  49.             Logger.getLogger(FrmMain.class.getName()).log(Level.SEVERE, null, ex);
  50.         }
  51.     }


运行结果如下

6.png

7.png

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

新浪微博达人勋

发表于 2014-4-3 23:22:15 | 显示全部楼层
王老师厉害!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-20 16:48:07 | 显示全部楼层
本科生学习中
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-12 17:13:33 | 显示全部楼层
昨天到今天终于跟到教程三了,按钮没改。。好搓的感觉
捕获.PNG
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-13 14:53:14 | 显示全部楼层
谢谢分享
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-12-30 16:27:23 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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