From 4c2058a146e90d341d941697b37307be977f22f4 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Fri, 29 Sep 2017 17:20:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=B0=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E4=B8=8B=E6=8B=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../type/VanChartMapSourceChoosePane.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java b/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java index b89bc667d..8fe71695e 100644 --- a/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java +++ b/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java @@ -34,6 +34,7 @@ import com.fr.plugin.chart.service.WMSFactory; import com.fr.plugin.chart.type.GISLayerType; import com.fr.plugin.chart.type.MapType; import com.fr.plugin.chart.type.ZoomLevel; +import com.fr.stable.ArrayUtils; import javax.swing.*; import javax.swing.event.PopupMenuEvent; @@ -79,6 +80,9 @@ public class VanChartMapSourceChoosePane extends JPanel implements UIObserver { ZoomLevel.SEVENTEEN, ZoomLevel.SEVENTEENPOINTFIVE, ZoomLevel.EIGHTEEN }; + //深蓝和高德地图下拉框层级 + private static final ZoomLevel[] BLUE_ZOOM_LEVELS =(ZoomLevel[]) ArrayUtils.subarray(ZOOM_LEVELS, 0, 34); + private static final ZoomLevel[] GAODE_ZOOM_LEVELS =ArrayUtils.addAll(new ZoomLevel[]{ZoomLevel.AUTO}, (ZoomLevel[])ArrayUtils.subarray(ZOOM_LEVELS, 7, 38)); private static final String AUTO_CENTER_STRING = Inter.getLocText("Plugin-ChartF_Automatic"); private static final String CUSTOM_CENTER_STRING = Inter.getLocText("Plugin-ChartF_Custom"); @@ -230,6 +234,13 @@ public class VanChartMapSourceChoosePane extends JPanel implements UIObserver { gisLayer = new UIComboBox(layers); + gisLayer.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + refreshZoomLevel(); + } + }); + gisLayer.addPopupMenuListener(new PopupMenuListener() { public void popupMenuCanceled(PopupMenuEvent e) { } @@ -296,6 +307,23 @@ public class VanChartMapSourceChoosePane extends JPanel implements UIObserver { return panel; } + private void refreshZoomLevel(){ + //gis图层不同,对应的suo缩放等级不同。 + ZoomLevel[] levels; + if (ComparatorUtils.equals(gisLayer.getSelectedItem(), Inter.getLocText("Plugin-ChartF_Layer_Blue"))) { + levels = BLUE_ZOOM_LEVELS; + } else if (ComparatorUtils.equals(gisLayer.getSelectedItem(), Inter.getLocText("Plugin-ChartF_Layer_GaoDe"))) { + levels = GAODE_ZOOM_LEVELS; + } else { + levels = ZOOM_LEVELS; + } + zoomLevel.removeAllItems(); + for (int i = 0; i < levels.length; i++) { + zoomLevel.addItem(levels[i]); + } + } + + private JPanel createCustomTileLayer() { double p = TableLayout.PREFERRED; double[] rowSize = {p, p}; @@ -620,6 +648,7 @@ public class VanChartMapSourceChoosePane extends JPanel implements UIObserver { customTileLayer.setText(layer.getCustomTileLayer()); attribution.setText(layer.getAttribution()); + refreshZoomLevel(); zoomLevel.setSelectedItem(mapPlot.getZoomLevel()); ViewCenter viewCenter = mapPlot.getViewCenter();