登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 MeteoInfo 于 2015-7-12 17:32 编辑
教程三实现在启动软件后自动加载、设置好相应的地理底图。
在主窗体中加入loadlayer函数,并且设置初始的图形大小和工具选项。
- //Set width and heigth
- this.setSize(1000, 650);
-
- //Load layer
- this.loadLayers();
-
- //Set initial tool
- this.jButton_Pan.doClick();
loadLayers中代码如下:
- private void loadLayers() {
- try {
- this.layersLegend1.getActiveMapFrame().getMapView().setLockViewUpdate(true);
- //Load country layer
- String mapDir = "E:\\MeteoInfo\\map\\";
- String fileName = mapDir + "country1.shp";
- MapLayer aLayer = MapDataManage.loadLayer(fileName);
- aLayer.getLegendScheme().getLegendBreaks().get(0).setColor(Color.LIGHT_GRAY);
- this.layersLegend1.getActiveMapFrame().addLayer(aLayer);
- //Load river layer
- fileName = mapDir + "rivers.shp";
- aLayer = MapDataManage.loadLayer(fileName);
- PolylineBreak lineBreak = (PolylineBreak) aLayer.getLegendScheme().getLegendBreaks().get(0);
- lineBreak.setColor(Color.cyan);
- lineBreak.setSize(2);
- this.layersLegend1.getActiveMapFrame().addLayer(aLayer);
- //Load City layer
- fileName = mapDir + "CITIES.shp";
- aLayer = MapDataManage.loadLayer(fileName);
- PointBreak pointBreak = (PointBreak) aLayer.getLegendScheme().getLegendBreaks().get(0);
- pointBreak.setColor(Color.red);
- aLayer.setExpanded(true);
- //Load City Name
- VectorLayer cityLayer = (VectorLayer) aLayer;
- LabelSet labelSet = cityLayer.getLabelSet();
- labelSet.setFieldName("NAME");
- labelSet.setAvoidCollision(true);
- labelSet.setLabelAlignType(AlignType.Center);
- labelSet.setYOffset(0);
- labelSet.setLabelFont(new Font("Arial", Font.PLAIN, 14));
- labelSet.setLabelColor(Color.red);
- labelSet.setDrawShadow(false);
- labelSet.setColorByLegend(false);
- cityLayer.addLabels();
- this.layersLegend1.getActiveMapFrame().addLayer(aLayer);
- //Set layout map size
- LayoutMap layoutMap = this.mapLayout1.getActiveLayoutMap();
- layoutMap.setLeft(40);
- layoutMap.setTop(40);
- layoutMap.setWidth(600);
- layoutMap.setHeight(400);
- //Repaint
- this.layersLegend1.getActiveMapFrame().getMapView().setLockViewUpdate(false);
- this.layersLegend1.getActiveMapFrame().getMapView().zoomToExtent(70, 140, 10, 60);
- this.layersLegend1.repaint();
- } catch (IOException ex) {
- Logger.getLogger(FrmMain.class.getName()).log(Level.SEVERE, null, ex);
- } catch (Exception ex) {
- Logger.getLogger(FrmMain.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
运行结果如下
|