Changeset 32585 in osm for applications/editors/josm/plugins/pt_assistant
- Timestamp:
- 2016-07-06T01:57:19+02:00 (9 years ago)
- Location:
- applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/PTAssistantPlugin.java
r32567 r32585 12 12 import org.openstreetmap.josm.plugins.pt_assistant.actions.AddStopPositionAction; 13 13 import org.openstreetmap.josm.plugins.pt_assistant.validation.PTAssistantValidatorTest; 14 import org.openstreetmap.josm.tools.ImageProvider;15 14 16 15 /** … … 52 51 } 53 52 } 54 55 /**56 * Returns a ImageProvider for the given string or null if in headless mode.57 *58 * @param s59 * The name of the file where the picture is.60 * @return A ImageProvider object for the given string or null if in61 * headless mode.62 */63 public static ImageProvider getProvider(String s) {64 if (Main.main == null) {65 return null;66 }67 return new ImageProvider(s);68 }69 53 70 54 } -
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/AddStopPositionAction.java
r32570 r32585 9 9 10 10 import org.openstreetmap.josm.Main; 11 import org.openstreetmap.josm.actions.JoinNodeWayAction; 11 12 import org.openstreetmap.josm.actions.JosmAction; 13 import org.openstreetmap.josm.actions.SplitWayAction; 12 14 import org.openstreetmap.josm.data.coor.LatLon; 13 15 import org.openstreetmap.josm.data.osm.Node; … … 44 46 return; 45 47 } 48 49 final ActionEvent actionEventParameter = e; 46 50 47 51 Main.map.mapView.addMouseListener(new MouseAdapter() { 48 52 49 53 LatLon clickPosition; 54 50 55 51 56 @Override … … 65 70 osmDataLayer.data.setSelected(newNode); 66 71 Main.map.mapView.repaint(); 72 73 // make the stop position node part of the way: 74 JoinNodeWayAction joinNodeWayAction = JoinNodeWayAction.createJoinNodeToWayAction(); 75 joinNodeWayAction.actionPerformed(actionEventParameter); 76 77 // split the way: 78 SplitWayAction splitWayAction = new SplitWayAction(); 79 splitWayAction.actionPerformed(actionEventParameter); 67 80 68 81 } -
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTStop.java
r32415 r32585 24 24 super(other); 25 25 26 if ((other.hasRole("stop") || other.hasRole("stop_entry_only") || other.hasRole("stop_exit_only")) 27 && other.getType().equals(OsmPrimitiveType.NODE)) { 26 // if ((other.hasRole("stop") || other.hasRole("stop_entry_only") || 27 // other.hasRole("stop_exit_only")) 28 // && other.getType().equals(OsmPrimitiveType.NODE)) { 29 30 if (other.getMember().hasTag("public_transport", "stop_position")) { 28 31 29 32 this.stopPosition = other.getNode(); 30 33 this.name = stopPosition.get("name"); 31 34 32 } else if (other.getRole().equals("platform") || other.getRole().equals("platform_entry_only") 33 || other.getRole().equals("platform_exit_only")) { 35 // } else if (other.getRole().equals("platform") || 36 // other.getRole().equals("platform_entry_only") 37 // || other.getRole().equals("platform_exit_only")) { 38 } else if (other.getMember().hasTag("highway", "bus_stop") 39 || other.getMember().hasTag("public_transport", "platform") 40 || other.getMember().hasTag("highway", "platform") || other.getMember().hasTag("railway", "platform")) { 34 41 35 42 this.platform = other.getMember(); … … 37 44 38 45 } else { 39 throw new IllegalArgumentException("The RelationMember type does not match its role " + other.getMember().getName()); 46 throw new IllegalArgumentException( 47 "The RelationMember type does not match its role " + other.getMember().getName()); 40 48 } 41 49 … … 57 65 58 66 // add stop position: 59 if (member.hasRole("stop") || member.hasRole("stop_entry_only") || member.hasRole("stop_exit_only")) { 67 // if (member.hasRole("stop") || member.hasRole("stop_entry_only") || 68 // member.hasRole("stop_exit_only")) { 69 if (member.getMember().hasTag("public_transport", "stop_position")) { 60 70 if (member.getType().equals(OsmPrimitiveType.NODE) && stopPosition == null) { 61 71 this.stopPosition = member.getNode(); … … 65 75 66 76 // add platform: 67 if (member.getRole().equals("platform") || member.getRole().equals("platform_entry_only") 68 || member.getRole().equals("platform_exit_only")) { 77 // if (member.getRole().equals("platform") || 78 // member.getRole().equals("platform_entry_only") 79 // || member.getRole().equals("platform_exit_only")) { 80 if (member.getMember().hasTag("highway", "bus_stop") 81 || member.getMember().hasTag("public_transport", "platform") 82 || member.getMember().hasTag("highway", "platform") || member.getMember().hasTag("railway", "platform")) { 69 83 if (platform == null) { 70 84 platform = member.getMember(); … … 123 137 } 124 138 125 // Look for a stop position within 100 m (around 0.002 degrees) of this platform: 139 // Look for a stop position within 100 m (around 0.002 degrees) of this 140 // platform: 126 141 127 142 LatLon platformCenter = platform.getBBox().getCenter(); … … 139 154 } 140 155 141 // // 1) Look for any stop_area relations that this platform142 // // belongs to:143 // ArrayList<OsmPrimitive> platformList = new144 // ArrayList<OsmPrimitive>(1);145 // platformList.add(platform);146 // Set<Relation> platformParentRelations =147 // OsmPrimitive.getParentRelations(platformList);148 // ArrayList<Relation> stopAreaList = new ArrayList<Relation>();149 // for (Relation platformParentRelation : platformParentRelations) {150 // if (platformParentRelation.hasTag("public_transport", "stop_area")) {151 // stopAreaList.add(platformParentRelation);152 // }153 // }154 //155 // // 2) Get all potential stop_positions from those stop_area156 // relations:157 // for (Relation stopArea : stopAreaList) {158 // for (RelationMember rm : stopArea.getMembers()) {159 // if ((rm.hasRole("stop") || rm.hasRole("stop_entry_only") ||160 // rm.hasRole("stop_exit_only"))&&161 // rm.getType().equals(OsmPrimitiveType.NODE)162 // && rm.getNode().hasTag("public_transport", "stop_position")) {163 // potentialStopPositions.add(rm.getNode());164 // }165 // }166 // }167 168 156 return potentialStopPositions; 169 157 } -
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java
r32567 r32585 33 33 || r.hasTag("route", "tram") || r.hasTag("route", "light_rail") || r.hasTag("route", "subway") 34 34 || r.hasTag("route", "train")) { 35 35 36 36 if (!r.hasTag("bus", "on_demand")) { 37 37 return true; 38 38 } 39 39 40 40 } 41 41 return false; … … 52 52 public static boolean isPTStop(RelationMember rm) { 53 53 54 if (rm.hasRole("stop") || rm.hasRole("stop_entry_only") || rm.hasRole("stop_exit_only") 55 || rm.hasRole("platform") || rm.hasRole("platform_entry_only") || rm.hasRole("platform_exit_only")) { 54 // if (rm.hasRole("stop") || rm.hasRole("stop_entry_only") || 55 // rm.hasRole("stop_exit_only") 56 // || rm.hasRole("platform") || rm.hasRole("platform_entry_only") || 57 // rm.hasRole("platform_exit_only")) { 56 58 57 59 if (rm.getType().equals(OsmPrimitiveType.NODE)) { 58 60 59 if (rm.getNode().hasTag("public_transport", "stop_position") 60 || rm.getNode().hasTag("highway", "bus_stop") 61 || rm.getNode().hasTag("public_transport", "platform") 62 || rm.getNode().hasTag("highway", "platform") || rm.getNode().hasTag("railway", "platform")) { 63 return true; 61 if (rm.getNode().hasTag("public_transport", "stop_position") || rm.getNode().hasTag("highway", "bus_stop") 62 || rm.getNode().hasTag("public_transport", "platform") || rm.getNode().hasTag("highway", "platform") 63 || rm.getNode().hasTag("railway", "platform")) { 64 return true; 64 65 65 }66 }67 68 if (rm.getType().equals(OsmPrimitiveType.WAY)) {69 if (rm.getWay().hasTag("public_transport", "platform") || rm.getWay().hasTag("highway", "platform")70 || rm.getWay().hasTag("railway", "platform")) {71 return true;72 }73 66 } 74 67 } 68 69 if (rm.getType().equals(OsmPrimitiveType.WAY)) { 70 if (rm.getWay().hasTag("public_transport", "platform") || rm.getWay().hasTag("highway", "platform") 71 || rm.getWay().hasTag("railway", "platform")) { 72 return true; 73 } 74 } 75 // } 75 76 76 77 return false; -
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/Checker.java
r32299 r32585 5 5 6 6 import org.openstreetmap.josm.data.osm.Relation; 7 import org.openstreetmap.josm.data.osm.RelationMember; 7 8 import org.openstreetmap.josm.data.validation.Test; 8 9 import org.openstreetmap.josm.data.validation.TestError; 9 10 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils; 10 11 11 12 /** 12 * Represents tests and fixed of the PT_Assistant plugin 13 * Represents tests and fixed of the PT_Assistant plugin 13 14 * 14 15 * @author darya … … 16 17 */ 17 18 public abstract class Checker { 18 19 19 20 // test which created this WayChecker: 20 21 protected final Test test; … … 25 26 // stores all found errors: 26 27 protected ArrayList<TestError> errors = new ArrayList<>(); 27 28 28 29 protected Checker(Relation relation, Test test) { 29 30 30 31 this.relation = relation; 31 32 this.test = test; 32 33 33 34 } 34 35 35 36 /** 36 37 * Returns errors … … 40 41 return errors; 41 42 } 42 43 44 43 44 /** 45 * Returns a list of stop-related route relation members with corrected 46 * roles (if necessary) 47 * 48 * @return list of stop-related route relation members 49 */ 50 protected static List<RelationMember> listStopMembers(Relation r) { 51 52 List<RelationMember> resultList = new ArrayList<>(); 53 54 for (RelationMember rm : r.getMembers()) { 55 56 if (RouteUtils.isPTStop(rm)) { 57 58 if (rm.getMember().hasTag("public_transport", "stop_position")) { 59 if (!rm.hasRole("stop") && !rm.hasRole("stop_entry_only") && !rm.hasRole("stop_exit_only")) { 60 RelationMember newMember = new RelationMember("stop", rm.getMember()); 61 resultList.add(newMember); 62 } else { 63 resultList.add(rm); 64 } 65 } else { // if platform 66 if (!rm.hasRole("platform") && !rm.hasRole("platform_entry_only") 67 && !rm.hasRole("platform_exit_only")) { 68 RelationMember newMember = new RelationMember("platform", rm.getMember()); 69 resultList.add(newMember); 70 } else { 71 resultList.add(rm); 72 } 73 } 74 75 } 76 } 77 78 return resultList; 79 } 80 81 /** 82 * Returns a list of other (not stop-related) route relation members with 83 * corrected roles (if necessary) 84 * 85 * @return list of other (not stop-related) route relation members 86 */ 87 protected static List<RelationMember> listNotStopMembers(Relation r) { 88 89 List<RelationMember> resultList = new ArrayList<RelationMember>(); 90 91 for (RelationMember rm : r.getMembers()) { 92 93 if (!RouteUtils.isPTStop(rm)) { 94 95 if (rm.hasRole("forward") || rm.hasRole("backward")) { 96 RelationMember newMember = new RelationMember("", rm.getMember()); 97 resultList.add(newMember); 98 } else { 99 100 resultList.add(rm); 101 102 } 103 } 104 105 } 106 107 return resultList; 108 } 45 109 46 110 } -
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java
r32567 r32585 299 299 commands.add(command2); 300 300 301 List<RelationMember> sortedRelationMembers = listStopMembers(originalRelation); 302 sortedRelationMembers.addAll(listNotStopMembers(originalRelation)); 303 301 304 List<OsmDataLayer> listOfLayers = Main.getLayerManager().getLayersOfType(OsmDataLayer.class); 302 305 for (OsmDataLayer osmDataLayer : listOfLayers) { … … 304 307 305 308 final OsmDataLayer layerParameter = osmDataLayer; 306 final Relation relationParameter = originalRelation; 309 final Relation relationParameter = new Relation(originalRelation); 310 relationParameter.setMembers(sortedRelationMembers); 307 311 final Collection<OsmPrimitive> zoomParameter = primitivesToZoom; 308 312 … … 338 342 RelationDialogManager.getRelationDialogManager().register(layer, r, editor); 339 343 editor.setVisible(true); 344 340 345 341 346
Note:
See TracChangeset
for help on using the changeset viewer.