Ignore:
Timestamp:
2013-04-14T15:54:06+02:00 (11 years ago)
Author:
donvip
Message:

[josm_opendata] Add Toulouse car_sharing dataset

Location:
applications/editors/josm/plugins/opendata
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java

    r28893 r29493  
    2222   
    2323    /**
    24      * Sources
     24     * Sources and Refs
    2525     */
    2626    public static final String SOURCE_GRAND_TOULOUSE = "GrandToulouse";
    2727    public static final String SOURCE_TOULOUSE_METROPOLE = "ToulouseMetropole";
    2828    public static final String SOURCE_TISSEO = "Tisséo SMTC";
     29    public static final String REF_TOULOUSE_METROPOLE = "ref:FR:ToulouseMetropole";
    2930   
    3031    /**
  • applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java

    r28699 r29493  
    6161import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.PistesCyclablesHandler;
    6262import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.ReseauTisseoHandler;
     63import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.StationsAutoPartageHandler;
    6364import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.TramwayStationHandler;
    6465import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.VeloToulouseHandler;
     
    112113        handlers.add(ChantiersLineairesHandler.class);
    113114        handlers.add(InstallationSportiveToulouseHandler.class);
     115        handlers.add(StationsAutoPartageHandler.class);
    114116    }
    115117   
  • applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java

    r28554 r29493  
    4646            n.remove("code_insee");
    4747            n.remove("color");
    48             replace(n, "id_PMR", "ref:grandtoulouse");
     48            replace(n, "id_PMR", REF_TOULOUSE_METROPOLE);
    4949        }
    5050    }
  • applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/SanisetteHandler.java

    r28554 r29493  
    4343            n.put("operator", "JCDecaux");
    4444            n.put("opening_hours", "24/7");
    45             replace(n, "numero", "ref:grandtoulouse");
     45            replace(n, "numero", REF_TOULOUSE_METROPOLE);
    4646            replace(n, "PMR", "wheelchair", new String[]{"true", "false"}, new String[]{"yes", "no"});
    4747            String valide = n.get("emplacement_valide");
  • applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java

    r29299 r29493  
    6060        public static final String PREF_MAXDISTANCE = "opendata.maxdistance";
    6161    public static final double DEFAULT_MAXDISTANCE = 10;
     62
     63    public static final String PREF_TOLERANCE = "opendata.spreadsheet.tolerance";
     64    public static final double DEFAULT_TOLERANCE = 0.1;
    6265
    6366    public static final String PREF_MODULES = "opendata.modules";
  • applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java

    r29299 r29493  
    7272       
    7373        public static class CoordinateColumns {
     74        public Projection proj = null;
    7475                public int xCol = -1;
    7576                public int yCol = -1;
     
    7778                        return xCol > -1 && yCol > -1;
    7879                }
    79         @Override
    80         public String toString() {
    81             return "[xCol=" + xCol + ", yCol=" + yCol + "]";
     80        @Override public String toString() {
     81            return "CoordinateColumns [proj=" + proj + ", xCol=" + xCol + ", yCol=" + yCol + "]";
    8282        }
    8383        }
     
    112112                }
    113113
    114                 Projection proj = null;
    115114                final List<CoordinateColumns> columns = new ArrayList<CoordinateColumns>();
    116115               
     
    119118                    if (col.isOk()) {
    120119                    columns.add(col);
    121                         if (proj == null) {
    122                             proj = pp.getProjection(header[col.xCol], header[col.yCol]);
     120                        if (col.proj == null) {
     121                            col.proj = pp.getProjection(header[col.xCol], header[col.yCol]);
    123122                        }
    124123                    }
     
    128127                final boolean handlerOK = handler != null && handler.handlesProjection();
    129128
    130                 if (proj != null) {
     129                boolean projFound = false;
     130               
     131                for (CoordinateColumns c : columns) {
     132                    if (c.proj != null) {
     133                        projFound = true;
     134                        break;
     135                    }
     136                }
     137               
     138                if (projFound) {
    131139                        // projection identified, do nothing
    132140                } else if (!columns.isEmpty()) {
     
    137145                                        return null; // User clicked Cancel
    138146                                }
    139                                 proj = dialog.getProjection();
     147                                Projection proj = dialog.getProjection();
     148                        for (CoordinateColumns c : columns) {
     149                            c.proj = proj;
     150                        }
    140151                        }
    141152                       
     
    149160                        message += "; ";
    150161                    }
    151                     message += header[c.xCol]+", "+header[c.yCol];
    152                 }
    153                
    154                 System.out.println("Loading data using projection "+proj+" ("+message+")");
     162                    message += c.proj + "("+header[c.xCol]+", "+header[c.yCol]+")";
     163                }
     164               
     165                System.out.println("Loading data using projections "+message);
    155166               
    156167                final DataSet ds = new DataSet();
     
    204215                                }
    205216                        }
     217                        Node firstNode = null;
    206218                        for (CoordinateColumns c : columns) {
    207219                            Node n = nodes.get(c);
    208220                            EastNorth en = ens.get(c);
    209221                        if (en.isValid()) {
    210                                 n.setCoor(proj != null && !handlerOK ? proj.eastNorth2latlon(en) : handler.getCoor(en, fields));
     222                                n.setCoor(c.proj != null && !handlerOK ? c.proj.eastNorth2latlon(en) : handler.getCoor(en, fields));
    211223                        } else {
    212224                                System.err.println("Warning: Skipping line "+lineNumber+" because no valid coordinates have been found at columns "+c);
    213225                        }
    214226                        if (n.getCoor() != null) {
    215                                 ds.addPrimitive(n);
     227                            if (firstNode == null) {
     228                                firstNode = n;
     229                            }
     230                            if (n == firstNode || n.getCoor().greatCircleDistance(firstNode.getCoor()) > Main.pref.getDouble(PREF_TOLERANCE, DEFAULT_TOLERANCE)) {
     231                                ds.addPrimitive(n);
     232                            } else {
     233                                nodes.remove(c);
     234                            }
    216235                        }
    217236                        }
Note: See TracChangeset for help on using the changeset viewer.