📄 dtedlayer.java
字号:
+ ") being told to set slope adjustment to invalid value (" + sa + "), must be 1-5"); } } /** * Get the value set for which DTED level is being used, 0-2. */ public int getDtedLevel() { return dtedLevel; } public void setDtedLevel(int level) { dtedLevel = level; } /** * Get the opaqueness value used for the images, 0-255. */ public int getOpaqueness() { return opaqueness; } public void setOpaqueness(int o) { if (o >= 0) { opaqueness = o; if (cache != null) { cache.setOpaqueness(opaqueness); } } } /** * Get whether the cache will be killed when the layer is removed * from the map. */ public boolean getKillCache() { return killCache; } public void setKillCache(boolean kc) { killCache = kc; } /** * Get the cache size, or how many DTED frames are held in memory. */ public int getCacheSize() { return cacheSize; } public void setCacheSize(int cs) { if (cs > 0) { cacheSize = cs; } else { Debug.output("DTEDLayer (" + getName() + ") being told to set cache size to invalid value (" + cs + ")."); } } /** * Get the number of colors used in the DTED images. */ public int getNumColors() { return numColors; } public void setNumColors(int nc) { if (nc > 0) { numColors = nc; if (cache != null) { cache.setNumColors(numColors); } } } //---------------------------------------------------------------------- // GUI //---------------------------------------------------------------------- /** The user interface palette for the DTED layer. */ protected Box palette = null; /** Creates the interface palette. */ public java.awt.Component getGUI() { if (palette == null) { if (Debug.debugging("dted")) Debug.output("DTEDLayer: creating DTED Palette."); palette = Box.createVerticalBox(); Box subbox1 = Box.createHorizontalBox(); Box subbox2 = Box.createVerticalBox(); Box subbox3 = Box.createHorizontalBox(); // palette = new JPanel(); // palette.setLayout(new GridLayout(0, 1)); // The DTED Level selector JPanel levelPanel = PaletteHelper.createPaletteJPanel("DTED Level"); ButtonGroup levels = new ButtonGroup(); ActionListener al = new ActionListener() { public void actionPerformed(ActionEvent e) { if (cache != null) { String ac = e.getActionCommand(); int newLevel; if (ac.equalsIgnoreCase(level2Command)) newLevel = DTEDFrameSubframe.LEVEL_2; else if (ac.equalsIgnoreCase(level1Command)) newLevel = DTEDFrameSubframe.LEVEL_1; else newLevel = DTEDFrameSubframe.LEVEL_0; DTEDFrameSubframeInfo dfsi = cache.getSubframeInfo(); dfsi.dtedLevel = newLevel; // cache.setSubframeInfo(dfsi); } } }; JRadioButton level0 = new JRadioButton("Level 0"); level0.addActionListener(al); level0.setActionCommand(level0Command); JRadioButton level1 = new JRadioButton("Level 1"); level1.addActionListener(al); level1.setActionCommand(level1Command); JRadioButton level2 = new JRadioButton("Level 2"); level2.addActionListener(al); level2.setActionCommand(level2Command); levels.add(level0); levels.add(level1); levels.add(level2); switch (dtedLevel) { case 2: level2.setSelected(true); break; case 1: level1.setSelected(true); break; case 0: default: level0.setSelected(true); } levelPanel.add(level0); levelPanel.add(level1); levelPanel.add(level2); // The DTED view selector JPanel viewPanel = PaletteHelper.createPaletteJPanel("View Type"); String[] viewStrings = { "None", "Shading", "Elevation Shading", "Elevation Bands (Meters)", "Elevation Bands (Feet)" }; JComboBox viewList = new JComboBox(viewStrings); viewList.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox jcb = (JComboBox) e.getSource(); int newView = jcb.getSelectedIndex(); switch (newView) { case 0: viewType = DTEDFrameSubframe.NOSHADING; break; case 1: viewType = DTEDFrameSubframe.SLOPESHADING; break; case 2: viewType = DTEDFrameSubframe.COLOREDSHADING; break; case 3: viewType = DTEDFrameSubframe.METERSHADING; break; case 4: viewType = DTEDFrameSubframe.FEETSHADING; break; default: viewType = DTEDFrameSubframe.NOSHADING; } if (cache != null) { DTEDFrameSubframeInfo dfsi = cache.getSubframeInfo(); dfsi.viewType = viewType; // cache.setSubframeInfo(dfsi); } } }); int selectedView; switch (viewType) { case 0: case 1: selectedView = viewType; break; case 2: case 3: selectedView = viewType + 1; break; case 4: // This puts the layer in testing mode, and the menu // changes. String[] viewStrings2 = { "None", "Shading", "Elevation Bands (Meters)", "Elevation Bands (Feet)", "Subframe Testing", "Elevation Shading" }; viewList = new JComboBox(viewStrings2); viewList.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox jcb = (JComboBox) e.getSource(); int newView = jcb.getSelectedIndex(); if (cache != null) { DTEDFrameSubframeInfo dfsi = cache.getSubframeInfo(); dfsi.viewType = newView; // cache.setSubframeInfo(dfsi); } } }); selectedView = viewType; break; case 5: selectedView = 2; //DTEDFrameSubframe.COLOREDSHADING break; default: selectedView = DTEDFrameSubframe.NOSHADING; } viewList.setSelectedIndex(selectedView); viewPanel.add(viewList); // The DTED Contrast Adjuster JPanel contrastPanel = PaletteHelper.createPaletteJPanel("Contrast Adjustment"); JSlider contrastSlide = new JSlider(JSlider.HORIZONTAL, 1/* min */, 5/* max */, slopeAdjust/* inital */); java.util.Hashtable dict = new java.util.Hashtable(); dict.put(new Integer(1), new JLabel("min")); dict.put(new Integer(5), new JLabel("max")); contrastSlide.setLabelTable(dict); contrastSlide.setPaintLabels(true); contrastSlide.setMajorTickSpacing(1); contrastSlide.setPaintTicks(true); contrastSlide.setSnapToTicks(true); contrastSlide.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { JSlider slider = (JSlider) ce.getSource(); if (slider.getValueIsAdjusting()) { fireRequestInfoLine(getName() + " - Contrast Slider value = " + slider.getValue()); slopeAdjust = slider.getValue(); if (cache != null) { DTEDFrameSubframeInfo dfsi = cache.getSubframeInfo(); dfsi.slopeAdjust = slopeAdjust; // cache.setSubframeInfo(dfsi); } } } }); contrastPanel.add(contrastSlide); // The DTED Band Height Adjuster JPanel bandPanel = PaletteHelper.createPaletteJPanel("Band Elevation Spacing"); JSlider bandSlide = new JSlider(JSlider.HORIZONTAL, 0/* min */, 1000/* max */, bandHeight/* inital */); bandSlide.setLabelTable(bandSlide.createStandardLabels(250)); bandSlide.setPaintLabels(true); bandSlide.setMajorTickSpacing(250); bandSlide.setMinorTickSpacing(50); bandSlide.setPaintTicks(true); bandSlide.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { JSlider slider = (JSlider) ce.getSource(); if (slider.getValueIsAdjusting()) { fireRequestInfoLine(getName() + " - Band Slider value = " + slider.getValue()); bandHeight = slider.getValue(); if (cache != null) { DTEDFrameSubframeInfo dfsi = cache.getSubframeInfo(); dfsi.bandHeight = bandHeight; // cache.setSubframeInfo(dfsi); } } } }); bandPanel.add(bandSlide); JButton redraw = new JButton("Redraw DTED Layer"); redraw.setActionCommand(RedrawCmd); redraw.addActionListener(this); subbox1.add(levelPanel); subbox1.add(viewPanel); palette.add(subbox1); subbox2.add(contrastPanel); subbox2.add(bandPanel); palette.add(subbox2); subbox3.add(redraw); palette.add(subbox3); } return palette; } //---------------------------------------------------------------------- // ActionListener interface implementation //---------------------------------------------------------------------- /** * Used just for the redraw button. */ public void actionPerformed(ActionEvent e) { super.actionPerformed(e); if (e.getActionCommand() == RedrawCmd) { doPrepare(); } } //---------------------------------------------------------------------- // MapMouseListener interface implementation //---------------------------------------------------------------------- public MapMouseListener getMapMouseListener() { return this; } public String[] getMouseModeServiceList() { String[] services = { SelectMouseMode.modeID }; return services; } public boolean mousePressed(MouseEvent e) { return false; } public boolean mouseReleased(MouseEvent e) { Projection projection = getProjection(); LatLonPoint ll = projection.inverse(e.getX(), e.getY()); location = new DTEDLocation(e.getX(), e.getY()); location.setElevation(cache.getElevation(ll.getLatitude(), ll.getLongitude())); location.generate(projection); repaint(); return true; } public boolean mouseClicked(MouseEvent e) { return false; } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public boolean mouseDragged(MouseEvent e) { return false; } public boolean mouseMoved(MouseEvent e) { return false; } public void mouseMoved() {}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -