Ignore:
Timestamp:
2008-09-15T13:40:32+02:00 (16 years ago)
Author:
petrdlouhy
Message:

Change resolution button + some simplifications

Location:
applications/editors/josm/plugins/wmsplugin/src/wmsplugin
Files:
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Map_Rectifier_WMSmenuAction.java

    r8721 r10704  
    2828                        "&srs=EPSG:4326&Service=WMS&Version=1.1.0&Request=GetMap&format=image/png";
    2929
    30                         DownloadWMSTask.download(WMSDownloadAction.getLayer(
    31                                 new WMSInfo(tr("rectifier id={0}",newid), newURL, -1)));
     30                        WMSLayer wmsLayer = new WMSLayer(tr("rectifier id={0}",newid), newURL);
     31                        Main.main.addLayer(wmsLayer);
    3232                }
    3333        }
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSDownloadAction.java

    r10382 r10704  
    2323                System.out.println(info.url);
    2424               
    25                 WMSLayer wmsLayer = getLayer(info);
    26                 MapView mv = Main.map.mapView;
    27 
    28                 Bounds b = new Bounds(
    29                         mv.getLatLon(0, mv.getHeight()),
    30                         mv.getLatLon(mv.getWidth(), 0));
    31                 double pixelPerDegree = mv.getWidth() / (b.max.lon() - b.min.lon());
    32 
    33                 wmsLayer.grab(b, pixelPerDegree);
     25                WMSLayer wmsLayer = new WMSLayer(info.name, info.url);
     26                Main.main.addLayer(wmsLayer);
    3427        }
    3528
    3629        public static WMSLayer getLayer(WMSInfo info) {
    37                 // simply check if we already have a layer created. if not, create; if yes, reuse.
    38                 for (Layer l : Main.main.map.mapView.getAllLayers()) {
    39                         if (l instanceof WMSLayer && l.name.equals(info.name)) {
    40                                 return (WMSLayer) l;
    41                         }
    42                 }
    43 
    4430                // FIXME: move this to WMSPlugin/WMSInfo/preferences.
    4531                WMSLayer wmsLayer = new WMSLayer(info.name, info.url);
     
    4834        }
    4935};
    50 
  • applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java

    r10684 r10704  
    4949
    5050        public int messageNum = 5; //limit for messages per layer
     51        protected MapView mv;
     52        protected String resolution;
    5153        protected boolean stopAfterPaint = false;
    5254        protected int ImageSize = 500;
     
    5658        protected double pixelPerDegree;
    5759        protected GeorefImage[][] images = new GeorefImage[dax][day];
    58         JCheckBoxMenuItem startstop = new JCheckBoxMenuItem(tr("Automatic downloading"), true);
     60        JCheckBoxMenuItem startstop = new JCheckBoxMenuItem(tr("Automatic downloading"), true);
    5961
    6062        protected String baseURL;
     
    6668                this(tr("Blank Layer"), null);
    6769                initializeImages();
     70                mv = Main.map.mapView;
    6871        }
    6972
     
    7275                initializeImages();
    7376                this.baseURL = baseURL;
     77                mv = Main.map.mapView;
     78                getPPD();
    7479               
    7580                executor = Executors.newFixedThreadPool(3);
     81        }
     82
     83        public void getPPD(){
     84                pixelPerDegree = mv.getWidth() / (bounds().max.lon() - bounds().min.lon());
    7685        }
    7786
     
    8392        }
    8493
    85         public void grab(Bounds b, double _pixelPerDegree) {
    86                 if (baseURL == null) return;
    87                 //set resolution
    88                 if(startstop.isSelected() || Math.round(pixelPerDegree/10000) != Math.round(_pixelPerDegree/10000))
    89                         initializeImages();
    90                 pixelPerDegree = _pixelPerDegree;
    91                 if(!startstop.isSelected()) stopAfterPaint = true;
    92                 startstop.setSelected(true);
    93         }
    94 
    9594        @Override public Icon getIcon() {
    9695                return icon;
    9796        }
    9897
     98        public String scale(){
     99                LatLon ll1 = mv.getLatLon(0,0);
     100                LatLon ll2 = mv.getLatLon(100,0);
     101                double dist = ll1.greatCircleDistance(ll2);
     102                return dist > 1000 ? (Math.round(dist/100)/10.0)+" km" : Math.round(dist*10)/10+" m";
     103        }
     104
    99105        @Override public String getToolTipText() {
    100106                if(startstop.isSelected())
    101                         return tr("WMS layer ({0}), automaticaly downloading in zoom {1}", name, Math.round(pixelPerDegree/10000));
     107                        return tr("WMS layer ({0}), automaticaly downloading in zoom {1}", name, resolution);
    102108                else
    103                         return tr("WMS layer ({0}), downloading in zoom {1}", name, Math.round(pixelPerDegree/10000));
     109                        return tr("WMS layer ({0}), downloading in zoom {1}", name, resolution);
    104110        }
    105111
     
    125131
    126132        @Override public void paint(Graphics g, final MapView mv) {
     133                if(baseURL == null) return;
    127134                Bounds b = new Bounds(
    128135                        mv.getLatLon(0, mv.getHeight()),
     
    152159                        }
    153160                }
    154                 if(stopAfterPaint){
    155                         startstop.setSelected(false);
    156                         stopAfterPaint = false;
    157                 }
    158161        }
    159162
     
    180183                                new JSeparator(),
    181184                                startstop,
     185                                new JMenuItem(new changeResolutionAction()),
    182186                                new JSeparator(),
    183                                 new JMenuItem(new LayerListPopup.InfoAction(this))};
    184 
     187                                new JMenuItem(new LayerListPopup.InfoAction(this))
     188                };
    185189        }
    186190
     
    196200        }
    197201
     202        public class changeResolutionAction extends AbstractAction {
     203                public changeResolutionAction() {
     204                        super(tr("Change resolution"));
     205                }
     206                public void actionPerformed(ActionEvent ev) {
     207                        initializeImages();
     208                        resolution = scale();
     209                        getPPD();
     210                        mv.repaint();
     211                }
     212        }
    198213
    199214        public class SaveWmsAction extends AbstractAction {
Note: See TracChangeset for help on using the changeset viewer.