Ignore:
Timestamp:
2015-06-11T15:26:31+02:00 (10 years ago)
Author:
nokutu
Message:

Now it downloads more data about the images and tells if there is a traffic signal in it

Location:
applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary
Files:
2 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java

    r31252 r31259  
    156156        public void setSelectedImage(MapillaryAbstractImage image) {
    157157                selectedImage = image;
     158                if (image instanceof MapillaryImage)
     159                        System.out.println(((MapillaryImage) image).getLocation());
    158160                multiSelectedImages.clear();
    159161                multiSelectedImages.add(image);
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java

    r31256 r31259  
    11package org.openstreetmap.josm.plugins.mapillary;
     2
     3import java.util.ArrayList;
     4import java.util.List;
    25
    36/**
     
    1316        /** Sequence of pictures containing this */
    1417        private MapillarySequence sequence;
     18
     19        private int capturedAt;
     20        private String user;
     21        private List<String> signals;
     22        private String location;
     23
     24        public String getLocation() {
     25                return location;
     26        }
     27
     28        public void setLocation(String location) {
     29                this.location = location;
     30        }
    1531
    1632        /**
     
    2945                super(lat, lon, ca);
    3046                this.key = key;
     47                this.signals = new ArrayList<>();
    3148        }
    3249
     
    3855        public String getKey() {
    3956                return this.key;
     57        }
     58       
     59        public void addSignal(String signal) {
     60                signals.add(signal);
     61        }
     62       
     63        public List<String> getSignals() {
     64                return signals;
     65        }
     66
     67        public void setCapturedAt(int capturedAt) {
     68                this.capturedAt = capturedAt;
     69        }
     70
     71        public int getCapturedAt() {
     72                return capturedAt;
     73        }
     74
     75        public void setUser(String user) {
     76                this.user = user;
     77        }
     78
     79        public String getUser() {
     80                return user;
    4081        }
    4182
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java

    r31257 r31259  
    246246                                        g.drawImage(op.filter(bi, null), p.x - (width / 2), p.y
    247247                                                        - (height / 2), Main.map.mapView);
     248                                        if (!image.getSignals().isEmpty()) {
     249                                                g.drawImage(MapillaryPlugin.MAP_SIGNAL.getImage(), p.x
     250                                                                + width / 2, p.y - height / 2,
     251                                                                Main.map.mapView);
     252                                        }
    248253                                } else if (imageAbs instanceof MapillaryImportedImage) {
    249254                                        MapillaryImportedImage image = (MapillaryImportedImage) imageAbs;
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java

    r31252 r31259  
    4141        public static final ImageIcon MAP_ICON_IMPORTED = new ImageProvider(
    4242                        "mapiconimported.png").get();
     43        public static final ImageIcon MAP_SIGNAL = new ImageProvider("signal.png")
     44                        .get();
    4345        public static final int ICON_SIZE = 24;
    4446
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryDownloader.java

    r31177 r31259  
    3636                String url1 = BASE_URL;
    3737                String url2 = BASE_URL;
     38                String url3 = BASE_URL;
    3839                url1 += "search/im/";
    3940                url2 += "search/s/";
     41                url3 += "search/im/or";
    4042                ConcurrentHashMap<String, Double> hash = new ConcurrentHashMap<>();
    4143                hash.put("min_lat", minLatLon.lat());
     
    4547                url1 += buildParameters(hash);
    4648                url2 += buildParameters(hash);
     49                url3 += buildParameters(hash);
     50               
    4751                try {
    4852                        Main.info("MapillaryPlugin GET " + url2);
    49                         Main.worker.submit(new MapillarySquareDownloadManagerThread(url1, url2, new Bounds(minLatLon, maxLatLon)));
     53                        Main.worker.submit(new MapillarySquareDownloadManagerThread(url1, url2, url3, new Bounds(minLatLon, maxLatLon)));
    5054                } catch (Exception e) {
    5155                        Main.error(e);
  • applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySquareDownloadManagerThread.java

    r31256 r31259  
    2222public class MapillarySquareDownloadManagerThread implements Runnable {
    2323
    24         @SuppressWarnings("unused")
    2524        private final String urlImages;
    2625        private final String urlSequences;
     26        private final String urlSignals;
    2727        private final Bounds bounds;
    2828
    2929        public MapillarySquareDownloadManagerThread(String urlImages,
    30                         String urlSequences, Bounds bounds) {
     30                        String urlSequences, String urlSignals, Bounds bounds) {
    3131                this.urlImages = urlImages;
    3232                this.urlSequences = urlSequences;
     33                this.urlSignals = urlSignals;
    3334                this.bounds = bounds;
    3435        }
     
    3839                try {
    3940                        downloadSequences();
     41                        completeImages();
     42                        downloadSignals();
    4043                } catch (InterruptedException e) {
    4144                        Main.error(e);
     
    4649                else
    4750                        Main.map.statusLine.setHelpText(tr("No images found"));
     51                MapillaryData.getInstance().dataUpdated();
    4852        }
    4953
    50         public void downloadSequences() throws InterruptedException {
     54        private void downloadSequences() throws InterruptedException {
    5155                ThreadPoolExecutor ex = new ThreadPoolExecutor(3, 5, 25,
    5256                                TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
     
    6266                MapillaryData.getInstance().dataUpdated();
    6367        }
     68
     69        private void completeImages() throws InterruptedException {
     70                ThreadPoolExecutor ex = new ThreadPoolExecutor(3, 5, 25,
     71                                TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
     72                int page = 0;
     73                while (!ex.isShutdown()) {
     74                        ex.execute(new MapillaryImageInfoDownloaderThread(ex, urlImages
     75                                        + "&page=" + page + "&limit=20"));
     76                        while (ex.getQueue().remainingCapacity() == 0)
     77                                Thread.sleep(100);
     78                        page++;
     79                }
     80                ex.awaitTermination(15, TimeUnit.SECONDS);
     81        }
     82
     83        private void downloadSignals() throws InterruptedException {
     84                ThreadPoolExecutor ex = new ThreadPoolExecutor(3, 5, 25,
     85                                TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
     86                int page = 0;
     87                while (!ex.isShutdown()) {
     88                        ex.execute(new MapillarySignalDownloaderThread(ex, urlSignals
     89                                        + "&page=" + page + "&limit=20"));
     90                        while (ex.getQueue().remainingCapacity() == 0)
     91                                Thread.sleep(100);
     92                        page++;
     93                }
     94                ex.awaitTermination(15, TimeUnit.SECONDS);
     95        }
    6496}
Note: See TracChangeset for help on using the changeset viewer.