Changeset 29299 in osm for applications/editors/josm/plugins/opendata/modules
- Timestamp:
- 2013-03-02T00:34:32+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java
r28113 r29299 19 19 import java.net.URL; 20 20 import java.util.ArrayList; 21 import java.util.HashSet; 21 22 import java.util.List; 23 import java.util.Map; 24 import java.util.Set; 22 25 23 26 import org.openstreetmap.josm.data.osm.DataSet; 27 import org.openstreetmap.josm.data.osm.Node; 28 import org.openstreetmap.josm.data.osm.Way; 29 import org.openstreetmap.josm.plugins.opendata.core.io.tabular.DefaultSpreadSheetHandler; 30 import org.openstreetmap.josm.plugins.opendata.core.io.tabular.SpreadSheetReader.CoordinateColumns; 24 31 import org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.DataGouvDataSetHandler; 25 32 import org.openstreetmap.josm.tools.Pair; … … 30 37 super("assainissement-collectif-30381843"); 31 38 setName("Assainissement collectif"); 32 getSpreadSheetHandler().setSheetNumber(1);39 setSpreadSheetHandler(new InternalOdsHandler()); 33 40 } 34 41 … … 40 47 @Override 41 48 public void updateDataSet(DataSet ds) { 42 // TODO Auto-generated method stub49 // Implemented in InternalOdsHandler.nodesAdded() 43 50 } 44 51 … … 51 58 try { 52 59 result.add(new Pair<String, URL>("Données 2009", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2.php"))); 53 // FIXME problem with 2010 file (blank cells ?)54 //result.add(new Pair<String, URL>("Données 2010", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2010.php")));60 result.add(new Pair<String, URL>("Données 2010", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2010.php"))); 61 result.add(new Pair<String, URL>("Données 2011", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2011.php"))); 55 62 } catch (MalformedURLException e) { 56 63 e.printStackTrace(); … … 58 65 return result; 59 66 } 67 68 private final class InternalOdsHandler extends DefaultSpreadSheetHandler { 69 70 private Node nodeWithKeys; 71 72 private final Set<String> interestingKeys = new HashSet<String>(); 73 74 public InternalOdsHandler() { 75 setSheetNumber(1); 76 } 77 78 private void updateTag(Node node, String odsKey, String osmKey) { 79 String value = nodeWithKeys.get(odsKey); 80 removeTag(odsKey); 81 if (value != null && !value.isEmpty()) { 82 addTag(node, osmKey, value); 83 } 84 } 85 86 private void addTag(Node node, String osmKey, String value) { 87 node.put(osmKey, value); 88 interestingKeys.add(osmKey); 89 } 90 91 private void removeTag(String odsKey) { 92 nodeWithKeys.remove(odsKey); 93 } 94 95 private void removeUninterestingTags() { 96 for (String key : nodeWithKeys.getKeys().keySet()) { 97 if (!interestingKeys.contains(key)) { 98 nodeWithKeys.remove(key); 99 } 100 } 101 } 102 103 @Override 104 public void nodesAdded(DataSet ds, Map<CoordinateColumns, Node> nodes, String[] header, int lineNumber) { 105 Node steuNode = null; 106 Node rejetNode = null; 107 for (CoordinateColumns c : nodes.keySet()) { 108 if (header[c.xCol].contains("STEU") && header[c.yCol].contains("STEU")) { 109 steuNode = nodes.get(c); 110 } else if (header[c.xCol].contains("rejet") && header[c.yCol].contains("rejet")) { 111 rejetNode = nodes.get(c); 112 } else { 113 System.err.println("Line "+lineNumber+": Unexpected coordinate columns: "+c); 114 } 115 } 116 if (steuNode == null || rejetNode == null) { 117 System.err.println("Line "+lineNumber+": 'STEU' or 'rejet' information not found"); 118 return; 119 } 120 nodeWithKeys = steuNode.hasKeys() ? steuNode : rejetNode; 121 122 addTag(steuNode, "man_made", "wastewater_plant"); 123 updateTag(steuNode, "Code du STEU", "ref"); 124 updateTag(steuNode, "Nom du STEU", "name"); 125 updateTag(steuNode, "Date de mise en service du STEU", "start_date"); 126 updateTag(steuNode, "Date de mise hors service du STEU", "end_date"); 127 updateTag(steuNode, "Exploitant", "operator"); 128 updateTag(steuNode, "Capacité nominale en EH", "capacity"); 129 updateTag(rejetNode, "Nom du milieu de rejet", "name"); 130 131 Way pipeline = new Way(); 132 pipeline.addNode(steuNode); 133 pipeline.addNode(rejetNode); 134 if (pipeline.getLength() > 1) { 135 //pipeline.put("man_made", "pipeline"); 136 //pipeline.put("type", "water"); 137 ds.addPrimitive(pipeline); 138 } 139 140 removeUninterestingTags(); 141 } 142 } 60 143 }
Note:
See TracChangeset
for help on using the changeset viewer.