Line data Source code
1 : /****************************************************************************/
2 : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 : // Copyright (C) 2002-2026 German Aerospace Center (DLR) and others.
4 : // This program and the accompanying materials are made available under the
5 : // terms of the Eclipse Public License 2.0 which is available at
6 : // https://www.eclipse.org/legal/epl-2.0/
7 : // This Source Code may also be made available under the following Secondary
8 : // Licenses when the conditions for such availability set forth in the Eclipse
9 : // Public License 2.0 are satisfied: GNU General Public License, version 2
10 : // or later which is available at
11 : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 : /****************************************************************************/
14 : /// @file SUMOXMLDefinitions.cpp
15 : /// @author Daniel Krajzewicz
16 : /// @author Jakob Erdmann
17 : /// @author Clemens Honomichl
18 : /// @author Piotr Woznica
19 : /// @author Michael Behrisch
20 : /// @author Walter Bamberger
21 : /// @date Sept 2002
22 : ///
23 : // Definitions of elements and attributes known by SUMO
24 : /****************************************************************************/
25 : #include <config.h>
26 :
27 : #include <algorithm>
28 : #include <cassert>
29 : #include <utils/common/StringTokenizer.h>
30 : #include <utils/common/StringUtils.h>
31 :
32 : #include "SUMOXMLDefinitions.h"
33 :
34 : // ===========================================================================
35 : // definitions
36 : // ===========================================================================
37 :
38 : SequentialStringBijection::Entry SUMOXMLDefinitions::tags[] = {
39 : // Simulation elements
40 : { "net", SUMO_TAG_NET },
41 : { "edge", SUMO_TAG_EDGE },
42 : { "lane", SUMO_TAG_LANE },
43 : { "neigh", SUMO_TAG_NEIGH },
44 : { "poly", SUMO_TAG_POLY },
45 : { "poi", SUMO_TAG_POI },
46 : { "junction", SUMO_TAG_JUNCTION },
47 : { "restriction", SUMO_TAG_RESTRICTION },
48 : { "preference", SUMO_TAG_PREFERENCE },
49 : { "meso", SUMO_TAG_MESO },
50 : { "busStop", SUMO_TAG_BUS_STOP },
51 : { "trainStop", SUMO_TAG_TRAIN_STOP },
52 : { "ptLine", SUMO_TAG_PT_LINE },
53 : { "access", SUMO_TAG_ACCESS },
54 : { "containerStop", SUMO_TAG_CONTAINER_STOP },
55 : { "chargingStation", SUMO_TAG_CHARGING_STATION },
56 : { "chargingEvent", SUMO_TAG_CHARGING_EVENT },
57 : { "parkingArea", SUMO_TAG_PARKING_AREA },
58 : { "space", SUMO_TAG_PARKING_SPACE },
59 : { "e1Detector", SUMO_TAG_E1DETECTOR },
60 : { "inductionLoop", SUMO_TAG_INDUCTION_LOOP },
61 : { "e2Detector", SUMO_TAG_E2DETECTOR },
62 : { "laneAreaDetector", SUMO_TAG_LANE_AREA_DETECTOR },
63 : { "multiLaneAreaDetector", GNE_TAG_MULTI_LANE_AREA_DETECTOR },
64 : { "e3Detector", SUMO_TAG_E3DETECTOR },
65 : { "entryExitDetector", SUMO_TAG_ENTRY_EXIT_DETECTOR },
66 : { "detEntry", SUMO_TAG_DET_ENTRY },
67 : { "detExit", SUMO_TAG_DET_EXIT },
68 : { "edgeData", SUMO_TAG_MEANDATA_EDGE },
69 : { "laneData", SUMO_TAG_MEANDATA_LANE },
70 : { "edgeFollowDetector", SUMO_TAG_EDGEFOLLOWDETECTOR },
71 : { "instantInductionLoop", SUMO_TAG_INSTANT_INDUCTION_LOOP },
72 : { "routeProbe", SUMO_TAG_ROUTEPROBE },
73 : { "calibrator", SUMO_TAG_CALIBRATOR },
74 : { "calibratorLane", GNE_TAG_CALIBRATOR_LANE },
75 : { "calibratorFlow", GNE_TAG_CALIBRATOR_FLOW },
76 : { "rerouter", SUMO_TAG_REROUTER },
77 : { "rerouterSymbol", GNE_TAG_REROUTER_SYMBOL },
78 : { "interval", SUMO_TAG_INTERVAL },
79 : { "destProbReroute", SUMO_TAG_DEST_PROB_REROUTE },
80 : { "closingReroute", SUMO_TAG_CLOSING_REROUTE },
81 : { "closingLaneReroute", SUMO_TAG_CLOSING_LANE_REROUTE },
82 : { "routeProbReroute", SUMO_TAG_ROUTE_PROB_REROUTE },
83 : { "parkingAreaReroute", SUMO_TAG_PARKING_AREA_REROUTE },
84 : { "viaProbReroute", SUMO_TAG_VIA_PROB_REROUTE },
85 : { "overtakingReroute", SUMO_TAG_OVERTAKING_REROUTE },
86 : { "stationReroute", SUMO_TAG_STATION_REROUTE },
87 : { "step", SUMO_TAG_STEP },
88 : { "variableSpeedSign", SUMO_TAG_VSS },
89 : { "variableSpeedSignSymbol", GNE_TAG_VSS_SYMBOL },
90 : { "vaporizer", SUMO_TAG_VAPORIZER },
91 : { "tractionSubstation", SUMO_TAG_TRACTION_SUBSTATION },
92 : { "overheadWireSegment", SUMO_TAG_OVERHEAD_WIRE_SEGMENT }, // <- Deprecate
93 : { "overheadWire", SUMO_TAG_OVERHEAD_WIRE_SECTION },
94 : { "overheadWireClamp", SUMO_TAG_OVERHEAD_WIRE_CLAMP },
95 : { "vTypeProbe", SUMO_TAG_VTYPEPROBE },
96 : { "routes", SUMO_TAG_ROUTES },
97 : { "trip", SUMO_TAG_TRIP },
98 : { "tripJunctions", GNE_TAG_TRIP_JUNCTIONS },
99 : { "tripTAZs", GNE_TAG_TRIP_TAZS },
100 : { "vehicle", SUMO_TAG_VEHICLE },
101 : { "vehicleWithRoute", GNE_TAG_VEHICLE_WITHROUTE },
102 : { "flow", SUMO_TAG_FLOW },
103 : { "flowJunctions", GNE_TAG_FLOW_JUNCTIONS },
104 : { "flowTAZs", GNE_TAG_FLOW_TAZS },
105 : { "flowState", SUMO_TAG_FLOWSTATE },
106 : { "vType", SUMO_TAG_VTYPE },
107 : { "vTypeRef", GNE_TAG_VTYPEREF },
108 : { "route", SUMO_TAG_ROUTE },
109 : { "routeRef", GNE_TAG_ROUTEREF },
110 : { "routeEmbedded", GNE_TAG_ROUTE_EMBEDDED },
111 : { "request", SUMO_TAG_REQUEST },
112 : { "source", SUMO_TAG_SOURCE },
113 : { "taz", SUMO_TAG_TAZ },
114 : { "tazSource", SUMO_TAG_TAZSOURCE },
115 : { "tazSink", SUMO_TAG_TAZSINK },
116 : { "trafficLight", SUMO_TAG_TRAFFIC_LIGHT },
117 : { "tlLogic", SUMO_TAG_TLLOGIC },
118 : { "phase", SUMO_TAG_PHASE },
119 : { "condition", SUMO_TAG_CONDITION },
120 : { "assignment", SUMO_TAG_ASSIGNMENT },
121 : { "function", SUMO_TAG_FUNCTION },
122 : { "edgeControl", SUMO_TAG_EDGECONTROL },
123 : { "routingEngine", SUMO_TAG_ROUTINGENGINE },
124 :
125 : { "edgeRelation", SUMO_TAG_EDGEREL },
126 : { "tazRelation", SUMO_TAG_TAZREL },
127 : { "timedEvent", SUMO_TAG_TIMEDEVENT },
128 : { "fromEdge", SUMO_TAG_FROMEDGE },
129 : { "toEdge", SUMO_TAG_TOEDGE },
130 : { "sink", SUMO_TAG_SINK },
131 : { "param", SUMO_TAG_PARAM },
132 : { "WAUT", SUMO_TAG_WAUT },
133 : { "wautSwitch", SUMO_TAG_WAUT_SWITCH },
134 : { "wautJunction", SUMO_TAG_WAUT_JUNCTION },
135 : { "segment", SUMO_TAG_SEGMENT },
136 : { "delete", SUMO_TAG_DEL },
137 : { "connections", SUMO_TAG_CONNECTIONS },
138 : { "stop", SUMO_TAG_STOP },
139 : { "stopBusStop", GNE_TAG_STOP_BUSSTOP },
140 : { "stopTrainStop", GNE_TAG_STOP_TRAINSTOP },
141 : { "stopContainerStop", GNE_TAG_STOP_CONTAINERSTOP },
142 : { "stopChargingStation", GNE_TAG_STOP_CHARGINGSTATION },
143 : { "stopParkingArea", GNE_TAG_STOP_PARKINGAREA },
144 : { "stopLane", GNE_TAG_STOP_LANE },
145 : { "polygonType", SUMO_TAG_POLYTYPE },
146 : { "connection", SUMO_TAG_CONNECTION },
147 : { "conflict", SUMO_TAG_CONFLICT },
148 : { "prohibition", SUMO_TAG_PROHIBITION },
149 : { "split", SUMO_TAG_SPLIT },
150 : { "node", SUMO_TAG_NODE },
151 : { "type", SUMO_TAG_TYPE },
152 : { "types", SUMO_TAG_TYPES },
153 : { "laneType", SUMO_TAG_LANETYPE },
154 : { "detectorDefinition", SUMO_TAG_DETECTOR_DEFINITION },
155 : { "routeDistribution", SUMO_TAG_ROUTE_DISTRIBUTION },
156 : { "vTypeDistribution", SUMO_TAG_VTYPE_DISTRIBUTION },
157 : { "roundabout", SUMO_TAG_ROUNDABOUT },
158 : { "join", SUMO_TAG_JOIN },
159 : { "joinExclude", SUMO_TAG_JOINEXCLUDE },
160 : { "crossing", SUMO_TAG_CROSSING },
161 : { "walkingArea", SUMO_TAG_WALKINGAREA },
162 : { "stopOffset", SUMO_TAG_STOPOFFSET },
163 : { "railSignalConstraints", SUMO_TAG_RAILSIGNAL_CONSTRAINTS },
164 : { "predecessor", SUMO_TAG_PREDECESSOR },
165 : { "insertionPredecessor", SUMO_TAG_INSERTION_PREDECESSOR },
166 : { "foeInsertion", SUMO_TAG_FOE_INSERTION },
167 : { "insertionOrder", SUMO_TAG_INSERTION_ORDER },
168 : { "bidiPredecessor", SUMO_TAG_BIDI_PREDECESSOR },
169 : { "railSignalConstraintTracker", SUMO_TAG_RAILSIGNAL_CONSTRAINT_TRACKER },
170 : { "deadlock", SUMO_TAG_DEADLOCK },
171 : { "driveWay", SUMO_TAG_DRIVEWAY },
172 : { "subDriveWay", SUMO_TAG_SUBDRIVEWAY },
173 : { "link", SUMO_TAG_LINK },
174 : { "approaching", SUMO_TAG_APPROACHING },
175 : { "dispatcher", SUMO_TAG_DISPATCHER },
176 : // OSM
177 : { "way", SUMO_TAG_WAY },
178 : { "nd", SUMO_TAG_ND },
179 : { "tag", SUMO_TAG_TAG },
180 : { "relation", SUMO_TAG_RELATION },
181 : { "member", SUMO_TAG_MEMBER },
182 : // View
183 : { "viewsettings", SUMO_TAG_VIEWSETTINGS },
184 : { "view3D", SUMO_TAG_VIEWSETTINGS_3D },
185 : { "decal", SUMO_TAG_VIEWSETTINGS_DECAL },
186 : { "tracker", SUMO_TAG_VIEWSETTINGS_TRACKER },
187 : { "light", SUMO_TAG_VIEWSETTINGS_LIGHT },
188 : { "scheme", SUMO_TAG_VIEWSETTINGS_SCHEME },
189 : { "opengl", SUMO_TAG_VIEWSETTINGS_OPENGL },
190 : { "background", SUMO_TAG_VIEWSETTINGS_BACKGROUND },
191 : { "edges", SUMO_TAG_VIEWSETTINGS_EDGES },
192 : { "vehicles", SUMO_TAG_VIEWSETTINGS_VEHICLES },
193 : { "persons", SUMO_TAG_VIEWSETTINGS_PERSONS },
194 : { "containers", SUMO_TAG_VIEWSETTINGS_CONTAINERS },
195 : { "junctions", SUMO_TAG_VIEWSETTINGS_JUNCTIONS },
196 : { "additionals", SUMO_TAG_VIEWSETTINGS_ADDITIONALS },
197 : { "pois", SUMO_TAG_VIEWSETTINGS_POIS },
198 : { "polys", SUMO_TAG_VIEWSETTINGS_POLYS },
199 : { "dataSettings", SUMO_TAG_VIEWSETTINGS_DATA },
200 : { "legend", SUMO_TAG_VIEWSETTINGS_LEGEND },
201 : { "event", SUMO_TAG_VIEWSETTINGS_EVENT },
202 : { "jamTime", SUMO_TAG_VIEWSETTINGS_EVENT_JAM_TIME },
203 : { "include", SUMO_TAG_INCLUDE },
204 : { "delay", SUMO_TAG_DELAY },
205 : { "viewport", SUMO_TAG_VIEWPORT },
206 : { "snapshot", SUMO_TAG_SNAPSHOT },
207 : { "breakpoint", SUMO_TAG_BREAKPOINT },
208 : { "location", SUMO_TAG_LOCATION },
209 : { "colorScheme", SUMO_TAG_COLORSCHEME },
210 : { "scalingScheme", SUMO_TAG_SCALINGSCHEME },
211 : { "entry", SUMO_TAG_ENTRY },
212 : { "rngState", SUMO_TAG_RNGSTATE },
213 : { "rngLane", SUMO_TAG_RNGLANE },
214 : { "vehicleTransfer", SUMO_TAG_VEHICLETRANSFER },
215 : { "device", SUMO_TAG_DEVICE },
216 : { "rem", SUMO_TAG_REMINDER },
217 : // Cars
218 : { "carFollowing-IDM", SUMO_TAG_CF_IDM },
219 : { "carFollowing-IDMM", SUMO_TAG_CF_IDMM },
220 : { "carFollowing-Krauss", SUMO_TAG_CF_KRAUSS },
221 : { "carFollowing-KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
222 : { "carFollowing-KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
223 : { "carFollowing-KraussX", SUMO_TAG_CF_KRAUSSX },
224 : { "carFollowing-EIDM", SUMO_TAG_CF_EIDM },
225 : { "carFollowing-SmartSK", SUMO_TAG_CF_SMART_SK },
226 : { "carFollowing-Daniel1", SUMO_TAG_CF_DANIEL1 },
227 : { "carFollowing-PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
228 : { "carFollowing-BKerner", SUMO_TAG_CF_BKERNER },
229 : { "carFollowing-Wiedemann", SUMO_TAG_CF_WIEDEMANN },
230 : { "carFollowing-W99", SUMO_TAG_CF_W99 },
231 : { "carFollowing-Rail", SUMO_TAG_CF_RAIL },
232 : { "carFollowing-ACC", SUMO_TAG_CF_ACC },
233 : { "carFollowing-CACC", SUMO_TAG_CF_CACC },
234 : { "carFollowing-CC", SUMO_TAG_CF_CC },
235 : // Person
236 : { "person", SUMO_TAG_PERSON },
237 : { "personTrip", SUMO_TAG_PERSONTRIP },
238 : { "ride", SUMO_TAG_RIDE },
239 : { "walk", SUMO_TAG_WALK },
240 : { "personFlow", SUMO_TAG_PERSONFLOW },
241 : // Data (Netedit)
242 : { "dataSet", SUMO_TAG_DATASET },
243 : { "dataInterval", SUMO_TAG_DATAINTERVAL },
244 : // Transport
245 : { "container", SUMO_TAG_CONTAINER },
246 : { "transport", SUMO_TAG_TRANSPORT },
247 : { "tranship", SUMO_TAG_TRANSHIP },
248 : { "containerFlow", SUMO_TAG_CONTAINERFLOW },
249 : //Trajectories
250 : { "trajectories", SUMO_TAG_TRAJECTORIES },
251 : { "timestep", SUMO_TAG_TIMESTEP },
252 : { "timeSlice", SUMO_TAG_TIMESLICE },
253 : { "actorConfig", SUMO_TAG_ACTORCONFIG },
254 : { "motionState", SUMO_TAG_MOTIONSTATE },
255 : { "odPair", SUMO_TAG_OD_PAIR },
256 : { "transportables", SUMO_TAG_TRANSPORTABLES },
257 : // ActivityGen statistics file
258 : { "general", AGEN_TAG_GENERAL },
259 : { "street", AGEN_TAG_STREET },
260 : { "workHours", AGEN_TAG_WORKHOURS },
261 : { "opening", AGEN_TAG_OPENING },
262 : { "closing", AGEN_TAG_CLOSING },
263 : { "schools", AGEN_TAG_SCHOOLS },
264 : { "school", AGEN_TAG_SCHOOL },
265 : { "busStation", AGEN_TAG_BUSSTATION },
266 : { "busLine", AGEN_TAG_BUSLINE },
267 : { "stations", AGEN_TAG_STATIONS },
268 : { "revStations", AGEN_TAG_REV_STATIONS },
269 : { "station", AGEN_TAG_STATION },
270 : { "frequency", AGEN_TAG_FREQUENCY },
271 : { "population", AGEN_TAG_POPULATION },
272 : { "bracket", AGEN_TAG_BRACKET },
273 : { "cityGates", AGEN_TAG_CITYGATES },
274 : { "entrance", AGEN_TAG_ENTRANCE },
275 : { "parameters", AGEN_TAG_PARAM },
276 : // Netedit
277 : { "edgeData-edge", GNE_TAG_EDGEREL_SINGLE },
278 : { "internalLane", GNE_TAG_INTERNAL_LANE },
279 : { "poiLane", GNE_TAG_POILANE },
280 : { "poiGeo", GNE_TAG_POIGEO },
281 : { "jupedsim.walkable_area", GNE_TAG_JPS_WALKABLEAREA },
282 : { "jupedsim.obstacle", GNE_TAG_JPS_OBSTACLE },
283 : { "flowRoute", GNE_TAG_FLOW_ROUTE },
284 : { "flowWithRoute", GNE_TAG_FLOW_WITHROUTE },
285 : // GNE waypoints
286 : { "waypoint", GNE_TAG_WAYPOINT },
287 : { "waypointLane", GNE_TAG_WAYPOINT_LANE },
288 : { "waypointBusStop", GNE_TAG_WAYPOINT_BUSSTOP },
289 : { "waypointTrainStop", GNE_TAG_WAYPOINT_TRAINSTOP },
290 : { "waypointContainerStop", GNE_TAG_WAYPOINT_CONTAINERSTOP },
291 : { "waypointChargingStation", GNE_TAG_WAYPOINT_CHARGINGSTATION },
292 : { "waypointParkingArea", GNE_TAG_WAYPOINT_PARKINGAREA },
293 : // GNE Person trips
294 : { "persontrip: edge->edge", GNE_TAG_PERSONTRIP_EDGE_EDGE },
295 : { "persontrip: edge->taz", GNE_TAG_PERSONTRIP_EDGE_TAZ },
296 : { "persontrip: edge->junction", GNE_TAG_PERSONTRIP_EDGE_JUNCTION },
297 : { "persontrip: edge->busstop", GNE_TAG_PERSONTRIP_EDGE_BUSSTOP },
298 : { "persontrip: edge->trainstop", GNE_TAG_PERSONTRIP_EDGE_TRAINSTOP },
299 : { "persontrip: edge->containerstop", GNE_TAG_PERSONTRIP_EDGE_CONTAINERSTOP },
300 : { "persontrip: edge->chargingstation", GNE_TAG_PERSONTRIP_EDGE_CHARGINGSTATION },
301 : { "persontrip: edge->parkingarea", GNE_TAG_PERSONTRIP_EDGE_PARKINGAREA },
302 : { "persontrip: taz->edge", GNE_TAG_PERSONTRIP_TAZ_EDGE },
303 : { "persontrip: taz->taz", GNE_TAG_PERSONTRIP_TAZ_TAZ },
304 : { "persontrip: taz->junction", GNE_TAG_PERSONTRIP_TAZ_JUNCTION },
305 : { "persontrip: taz->busstop", GNE_TAG_PERSONTRIP_TAZ_BUSSTOP },
306 : { "persontrip: taz->trainstop", GNE_TAG_PERSONTRIP_TAZ_TRAINSTOP },
307 : { "persontrip: taz->containerstop", GNE_TAG_PERSONTRIP_TAZ_CONTAINERSTOP },
308 : { "persontrip: taz->chargingstation", GNE_TAG_PERSONTRIP_TAZ_CHARGINGSTATION },
309 : { "persontrip: taz->parkingarea", GNE_TAG_PERSONTRIP_TAZ_PARKINGAREA },
310 : { "persontrip: junction->edge", GNE_TAG_PERSONTRIP_JUNCTION_EDGE },
311 : { "persontrip: junction->taz", GNE_TAG_PERSONTRIP_JUNCTION_TAZ },
312 : { "persontrip: junction->junction", GNE_TAG_PERSONTRIP_JUNCTION_JUNCTION },
313 : { "persontrip: junction->busstop", GNE_TAG_PERSONTRIP_JUNCTION_BUSSTOP },
314 : { "persontrip: junction->trainstop", GNE_TAG_PERSONTRIP_JUNCTION_TRAINSTOP },
315 : { "persontrip: junction->containerstop", GNE_TAG_PERSONTRIP_JUNCTION_CONTAINERSTOP },
316 : { "persontrip: junction->chargingstation", GNE_TAG_PERSONTRIP_JUNCTION_CHARGINGSTATION },
317 : { "persontrip: junction->parkingarea", GNE_TAG_PERSONTRIP_JUNCTION_PARKINGAREA },
318 : { "persontrip: busstop->edge", GNE_TAG_PERSONTRIP_BUSSTOP_EDGE },
319 : { "persontrip: busstop->taz", GNE_TAG_PERSONTRIP_BUSSTOP_TAZ },
320 : { "persontrip: busstop->junction", GNE_TAG_PERSONTRIP_BUSSTOP_JUNCTION },
321 : { "persontrip: busstop->busstop", GNE_TAG_PERSONTRIP_BUSSTOP_BUSSTOP },
322 : { "persontrip: busstop->trainstop", GNE_TAG_PERSONTRIP_BUSSTOP_TRAINSTOP },
323 : { "persontrip: busstop->containerstop", GNE_TAG_PERSONTRIP_BUSSTOP_CONTAINERSTOP },
324 : { "persontrip: busstop->chargingstation", GNE_TAG_PERSONTRIP_BUSSTOP_CHARGINGSTATION },
325 : { "persontrip: busstop->parkingarea", GNE_TAG_PERSONTRIP_BUSSTOP_PARKINGAREA },
326 : { "persontrip: trainstop->edge", GNE_TAG_PERSONTRIP_TRAINSTOP_EDGE },
327 : { "persontrip: trainstop->taz", GNE_TAG_PERSONTRIP_TRAINSTOP_TAZ },
328 : { "persontrip: trainstop->junction", GNE_TAG_PERSONTRIP_TRAINSTOP_JUNCTION },
329 : { "persontrip: trainstop->busstop", GNE_TAG_PERSONTRIP_TRAINSTOP_BUSSTOP },
330 : { "persontrip: trainstop->trainstop", GNE_TAG_PERSONTRIP_TRAINSTOP_TRAINSTOP },
331 : { "persontrip: trainstop->containerstop", GNE_TAG_PERSONTRIP_TRAINSTOP_CONTAINERSTOP },
332 : { "persontrip: trainstop->chargingstation", GNE_TAG_PERSONTRIP_TRAINSTOP_CHARGINGSTATION },
333 : { "persontrip: trainstop->parkingarea", GNE_TAG_PERSONTRIP_TRAINSTOP_PARKINGAREA },
334 : { "persontrip: containerstop->edge", GNE_TAG_PERSONTRIP_CONTAINERSTOP_EDGE },
335 : { "persontrip: containerstop->taz", GNE_TAG_PERSONTRIP_CONTAINERSTOP_TAZ },
336 : { "persontrip: containerstop->junction", GNE_TAG_PERSONTRIP_CONTAINERSTOP_JUNCTION },
337 : { "persontrip: containerstop->busstop", GNE_TAG_PERSONTRIP_CONTAINERSTOP_BUSSTOP },
338 : { "persontrip: containerstop->trainstop", GNE_TAG_PERSONTRIP_CONTAINERSTOP_TRAINSTOP },
339 : { "persontrip: containerstop->containerstop", GNE_TAG_PERSONTRIP_CONTAINERSTOP_CONTAINERSTOP },
340 : { "persontrip: containerstop->chargingstation", GNE_TAG_PERSONTRIP_CONTAINERSTOP_CHARGINGSTATION },
341 : { "persontrip: containerstop->parkingarea", GNE_TAG_PERSONTRIP_CONTAINERSTOP_PARKINGAREA },
342 : { "persontrip: chargingstation->edge", GNE_TAG_PERSONTRIP_CHARGINGSTATION_EDGE },
343 : { "persontrip: chargingstation->taz", GNE_TAG_PERSONTRIP_CHARGINGSTATION_TAZ },
344 : { "persontrip: chargingstation->junction", GNE_TAG_PERSONTRIP_CHARGINGSTATION_JUNCTION },
345 : { "persontrip: chargingstation->busstop", GNE_TAG_PERSONTRIP_CHARGINGSTATION_BUSSTOP },
346 : { "persontrip: chargingstation->trainstop", GNE_TAG_PERSONTRIP_CHARGINGSTATION_TRAINSTOP },
347 : { "persontrip: chargingstation->containestop", GNE_TAG_PERSONTRIP_CHARGINGSTATION_CONTAINERSTOP },
348 : { "persontrip: chargingstation->chargingstation", GNE_TAG_PERSONTRIP_CHARGINGSTATION_CHARGINGSTATION },
349 : { "persontrip: chargingstation->parkingarea", GNE_TAG_PERSONTRIP_CHARGINGSTATION_PARKINGAREA },
350 : { "persontrip: parkingarea->edge", GNE_TAG_PERSONTRIP_PARKINGAREA_EDGE },
351 : { "persontrip: parkingarea->taz", GNE_TAG_PERSONTRIP_PARKINGAREA_TAZ },
352 : { "persontrip: parkingarea->junction", GNE_TAG_PERSONTRIP_PARKINGAREA_JUNCTION },
353 : { "persontrip: parkingarea->busstop", GNE_TAG_PERSONTRIP_PARKINGAREA_BUSSTOP },
354 : { "persontrip: parkingarea->trainstop", GNE_TAG_PERSONTRIP_PARKINGAREA_TRAINSTOP },
355 : { "persontrip: parkingarea->containerstop", GNE_TAG_PERSONTRIP_PARKINGAREA_CONTAINERSTOP },
356 : { "persontrip: parkingarea->chargingstation", GNE_TAG_PERSONTRIP_PARKINGAREA_CHARGINGSTATION },
357 : { "persontrip: parkingarea->parkingarea", GNE_TAG_PERSONTRIP_PARKINGAREA_PARKINGAREA },
358 : // GNE Walks
359 : { "walk: edge->edge", GNE_TAG_WALK_EDGE_EDGE },
360 : { "walk: edge->taz", GNE_TAG_WALK_EDGE_TAZ },
361 : { "walk: edge->junction", GNE_TAG_WALK_EDGE_JUNCTION },
362 : { "walk: edge->busstop", GNE_TAG_WALK_EDGE_BUSSTOP },
363 : { "walk: edge->trainstop", GNE_TAG_WALK_EDGE_TRAINSTOP },
364 : { "walk: edge->containerstop", GNE_TAG_WALK_EDGE_CONTAINERSTOP },
365 : { "walk: edge->chargingstation", GNE_TAG_WALK_EDGE_CHARGINGSTATION },
366 : { "walk: edge->parkingarea", GNE_TAG_WALK_EDGE_PARKINGAREA },
367 : { "walk: taz->edge", GNE_TAG_WALK_TAZ_EDGE },
368 : { "walk: taz->taz", GNE_TAG_WALK_TAZ_TAZ },
369 : { "walk: taz->junction", GNE_TAG_WALK_TAZ_JUNCTION },
370 : { "walk: taz->busstop", GNE_TAG_WALK_TAZ_BUSSTOP },
371 : { "walk: taz->trainstop", GNE_TAG_WALK_TAZ_TRAINSTOP },
372 : { "walk: taz->containerstop", GNE_TAG_WALK_TAZ_CONTAINERSTOP },
373 : { "walk: taz->chargingstation", GNE_TAG_WALK_TAZ_CHARGINGSTATION },
374 : { "walk: taz->parkingarea", GNE_TAG_WALK_TAZ_PARKINGAREA },
375 : { "walk: junction->edge", GNE_TAG_WALK_JUNCTION_EDGE },
376 : { "walk: junction->taz", GNE_TAG_WALK_JUNCTION_TAZ },
377 : { "walk: junction->junction", GNE_TAG_WALK_JUNCTION_JUNCTION },
378 : { "walk: junction->busstop", GNE_TAG_WALK_JUNCTION_BUSSTOP },
379 : { "walk: junction->trainstop", GNE_TAG_WALK_JUNCTION_TRAINSTOP },
380 : { "walk: junction->containerstop", GNE_TAG_WALK_JUNCTION_CONTAINERSTOP },
381 : { "walk: junction->chargingstation", GNE_TAG_WALK_JUNCTION_CHARGINGSTATION },
382 : { "walk: junction->parkingarea", GNE_TAG_WALK_JUNCTION_PARKINGAREA },
383 : { "walk: busstop->edge", GNE_TAG_WALK_BUSSTOP_EDGE },
384 : { "walk: busstop->taz", GNE_TAG_WALK_BUSSTOP_TAZ },
385 : { "walk: busstop->junction", GNE_TAG_WALK_BUSSTOP_JUNCTION },
386 : { "walk: busstop->busstop", GNE_TAG_WALK_BUSSTOP_BUSSTOP },
387 : { "walk: busstop->trainstop", GNE_TAG_WALK_BUSSTOP_TRAINSTOP },
388 : { "walk: busstop->containerstop", GNE_TAG_WALK_BUSSTOP_CONTAINERSTOP },
389 : { "walk: busstop->chargingstation", GNE_TAG_WALK_BUSSTOP_CHARGINGSTATION },
390 : { "walk: busstop->parkingarea", GNE_TAG_WALK_BUSSTOP_PARKINGAREA },
391 : { "walk: trainstop->edge", GNE_TAG_WALK_TRAINSTOP_EDGE },
392 : { "walk: trainstop->taz", GNE_TAG_WALK_TRAINSTOP_TAZ },
393 : { "walk: trainstop->junction", GNE_TAG_WALK_TRAINSTOP_JUNCTION },
394 : { "walk: trainstop->busstop", GNE_TAG_WALK_TRAINSTOP_BUSSTOP },
395 : { "walk: trainstop->trainstop", GNE_TAG_WALK_TRAINSTOP_TRAINSTOP },
396 : { "walk: trainstop->containerstop", GNE_TAG_WALK_TRAINSTOP_CONTAINERSTOP },
397 : { "walk: trainstop->chargingstation", GNE_TAG_WALK_TRAINSTOP_CHARGINGSTATION },
398 : { "walk: trainstop->parkingarea", GNE_TAG_WALK_TRAINSTOP_PARKINGAREA },
399 : { "walk: containerstop->edge", GNE_TAG_WALK_CONTAINERSTOP_EDGE },
400 : { "walk: containerstop->taz", GNE_TAG_WALK_CONTAINERSTOP_TAZ },
401 : { "walk: containerstop->junction", GNE_TAG_WALK_CONTAINERSTOP_JUNCTION },
402 : { "walk: containerstop->busstop", GNE_TAG_WALK_CONTAINERSTOP_BUSSTOP },
403 : { "walk: containerstop->trainstop", GNE_TAG_WALK_CONTAINERSTOP_TRAINSTOP },
404 : { "walk: containerstop->containerstop", GNE_TAG_WALK_CONTAINERSTOP_CONTAINERSTOP },
405 : { "walk: containerstop->chargingstation", GNE_TAG_WALK_CONTAINERSTOP_CHARGINGSTATION },
406 : { "walk: containerstop->parkingarea", GNE_TAG_WALK_CONTAINERSTOP_PARKINGAREA },
407 : { "walk: chargingstation->edge", GNE_TAG_WALK_CHARGINGSTATION_EDGE },
408 : { "walk: chargingstation->taz", GNE_TAG_WALK_CHARGINGSTATION_TAZ },
409 : { "walk: chargingstation->junction", GNE_TAG_WALK_CHARGINGSTATION_JUNCTION },
410 : { "walk: chargingstation->busstop", GNE_TAG_WALK_CHARGINGSTATION_BUSSTOP },
411 : { "walk: chargingstation->trainstop", GNE_TAG_WALK_CHARGINGSTATION_TRAINSTOP },
412 : { "walk: chargingstation->containestop", GNE_TAG_WALK_CHARGINGSTATION_CONTAINERSTOP },
413 : { "walk: chargingstation->chargingstation", GNE_TAG_WALK_CHARGINGSTATION_CHARGINGSTATION },
414 : { "walk: chargingstation->parkingarea", GNE_TAG_WALK_CHARGINGSTATION_PARKINGAREA },
415 : { "walk: parkingarea->edge", GNE_TAG_WALK_PARKINGAREA_EDGE },
416 : { "walk: parkingarea->taz", GNE_TAG_WALK_PARKINGAREA_TAZ },
417 : { "walk: parkingarea->junction", GNE_TAG_WALK_PARKINGAREA_JUNCTION },
418 : { "walk: parkingarea->busstop", GNE_TAG_WALK_PARKINGAREA_BUSSTOP },
419 : { "walk: parkingarea->trainstop", GNE_TAG_WALK_PARKINGAREA_TRAINSTOP },
420 : { "walk: parkingarea->containerstop", GNE_TAG_WALK_PARKINGAREA_CONTAINERSTOP },
421 : { "walk: parkingarea->chargingstation", GNE_TAG_WALK_PARKINGAREA_CHARGINGSTATION },
422 : { "walk: parkingarea->parkingarea", GNE_TAG_WALK_PARKINGAREA_PARKINGAREA },
423 : { "walk: edges", GNE_TAG_WALK_EDGES },
424 : { "walk: route", GNE_TAG_WALK_ROUTE },
425 : // GNE Rides
426 : { "ride: edge->edge", GNE_TAG_RIDE_EDGE_EDGE },
427 : { "ride: edge->busstop", GNE_TAG_RIDE_EDGE_BUSSTOP },
428 : { "ride: edge->trainstop", GNE_TAG_RIDE_EDGE_TRAINSTOP },
429 : { "ride: edge->containerstop", GNE_TAG_RIDE_EDGE_CONTAINERSTOP },
430 : { "ride: edge->chargingstation", GNE_TAG_RIDE_EDGE_CHARGINGSTATION },
431 : { "ride: edge->parkingarea", GNE_TAG_RIDE_EDGE_PARKINGAREA },
432 : { "ride: busstop->edge", GNE_TAG_RIDE_BUSSTOP_EDGE },
433 : { "ride: busstop->busstop", GNE_TAG_RIDE_BUSSTOP_BUSSTOP },
434 : { "ride: busstop->trainstop", GNE_TAG_RIDE_BUSSTOP_TRAINSTOP },
435 : { "ride: busstop->containerstop", GNE_TAG_RIDE_BUSSTOP_CONTAINERSTOP },
436 : { "ride: busstop->chargingstation", GNE_TAG_RIDE_BUSSTOP_CHARGINGSTATION },
437 : { "ride: busstop->parkingarea", GNE_TAG_RIDE_BUSSTOP_PARKINGAREA },
438 : { "ride: trainstop->edge", GNE_TAG_RIDE_TRAINSTOP_EDGE },
439 : { "ride: trainstop->busstop", GNE_TAG_RIDE_TRAINSTOP_BUSSTOP },
440 : { "ride: trainstop->trainstop", GNE_TAG_RIDE_TRAINSTOP_TRAINSTOP },
441 : { "ride: trainstop->containerstop", GNE_TAG_RIDE_TRAINSTOP_CONTAINERSTOP },
442 : { "ride: trainstop->chargingstation", GNE_TAG_RIDE_TRAINSTOP_CHARGINGSTATION },
443 : { "ride: trainstop->parkingarea", GNE_TAG_RIDE_TRAINSTOP_PARKINGAREA },
444 : { "ride: containerstop->edge", GNE_TAG_RIDE_CONTAINERSTOP_EDGE },
445 : { "ride: containerstop->busstop", GNE_TAG_RIDE_CONTAINERSTOP_BUSSTOP },
446 : { "ride: containerstop->trainstop", GNE_TAG_RIDE_CONTAINERSTOP_TRAINSTOP },
447 : { "ride: containerstop->containerstop", GNE_TAG_RIDE_CONTAINERSTOP_CONTAINERSTOP },
448 : { "ride: containerstop->chargingstation", GNE_TAG_RIDE_CONTAINERSTOP_CHARGINGSTATION },
449 : { "ride: containerstop->parkingarea", GNE_TAG_RIDE_CONTAINERSTOP_PARKINGAREA },
450 : { "ride: chargingstation->edge", GNE_TAG_RIDE_CHARGINGSTATION_EDGE },
451 : { "ride: chargingstation->busstop", GNE_TAG_RIDE_CHARGINGSTATION_BUSSTOP },
452 : { "ride: chargingstation->trainstop", GNE_TAG_RIDE_CHARGINGSTATION_TRAINSTOP },
453 : { "ride: chargingstation->containestop", GNE_TAG_RIDE_CHARGINGSTATION_CONTAINERSTOP },
454 : { "ride: chargingstation->chargingstation", GNE_TAG_RIDE_CHARGINGSTATION_CHARGINGSTATION },
455 : { "ride: chargingstation->parkingarea", GNE_TAG_RIDE_CHARGINGSTATION_PARKINGAREA },
456 : { "ride: parkingarea->edge", GNE_TAG_RIDE_PARKINGAREA_EDGE },
457 : { "ride: parkingarea->busstop", GNE_TAG_RIDE_PARKINGAREA_BUSSTOP },
458 : { "ride: parkingarea->trainstop", GNE_TAG_RIDE_PARKINGAREA_TRAINSTOP },
459 : { "ride: parkingarea->containerstop", GNE_TAG_RIDE_PARKINGAREA_CONTAINERSTOP },
460 : { "ride: parkingarea->chargingstation", GNE_TAG_RIDE_PARKINGAREA_CHARGINGSTATION },
461 : { "ride: parkingarea->parkingarea", GNE_TAG_RIDE_PARKINGAREA_PARKINGAREA },
462 : // GNE Person Stops
463 : { "stopPerson", GNE_TAG_STOPPERSON },
464 : { "stopPerson: edge", GNE_TAG_STOPPERSON_EDGE },
465 : { "stopPerson: busStop", GNE_TAG_STOPPERSON_BUSSTOP },
466 : { "stopPerson: trainStop", GNE_TAG_STOPPERSON_TRAINSTOP },
467 : { "stopPerson: containerStop", GNE_TAG_STOPPERSON_CONTAINERSTOP },
468 : { "stopPerson: chargingStation", GNE_TAG_STOPPERSON_CHARGINGSTATION },
469 : { "stopPerson: parkingArea", GNE_TAG_STOPPERSON_PARKINGAREA },
470 : // GNE Transports
471 : { "transport: edge->edge", GNE_TAG_TRANSPORT_EDGE_EDGE },
472 : { "transport: edge->busstop", GNE_TAG_TRANSPORT_EDGE_BUSSTOP },
473 : { "transport: edge->trainstop", GNE_TAG_TRANSPORT_EDGE_TRAINSTOP },
474 : { "transport: edge->containerstop", GNE_TAG_TRANSPORT_EDGE_CONTAINERSTOP },
475 : { "transport: edge->chargingstation", GNE_TAG_TRANSPORT_EDGE_CHARGINGSTATION },
476 : { "transport: edge->parkingarea", GNE_TAG_TRANSPORT_EDGE_PARKINGAREA },
477 : { "transport: busstop->edge", GNE_TAG_TRANSPORT_BUSSTOP_EDGE },
478 : { "transport: busstop->busstop", GNE_TAG_TRANSPORT_BUSSTOP_BUSSTOP },
479 : { "transport: busstop->trainstop", GNE_TAG_TRANSPORT_BUSSTOP_TRAINSTOP },
480 : { "transport: busstop->containerstop", GNE_TAG_TRANSPORT_BUSSTOP_CONTAINERSTOP },
481 : { "transport: busstop->chargingstation", GNE_TAG_TRANSPORT_BUSSTOP_CHARGINGSTATION },
482 : { "transport: busstop->parkingarea", GNE_TAG_TRANSPORT_BUSSTOP_PARKINGAREA },
483 : { "transport: trainstop->edge", GNE_TAG_TRANSPORT_TRAINSTOP_EDGE },
484 : { "transport: trainstop->busstop", GNE_TAG_TRANSPORT_TRAINSTOP_BUSSTOP },
485 : { "transport: trainstop->trainstop", GNE_TAG_TRANSPORT_TRAINSTOP_TRAINSTOP },
486 : { "transport: trainstop->containerstop", GNE_TAG_TRANSPORT_TRAINSTOP_CONTAINERSTOP },
487 : { "transport: trainstop->chargingstation", GNE_TAG_TRANSPORT_TRAINSTOP_CHARGINGSTATION },
488 : { "transport: trainstop->parkingarea", GNE_TAG_TRANSPORT_TRAINSTOP_PARKINGAREA },
489 : { "transport: containerstop->edge", GNE_TAG_TRANSPORT_CONTAINERSTOP_EDGE },
490 : { "transport: containerstop->busstop", GNE_TAG_TRANSPORT_CONTAINERSTOP_BUSSTOP },
491 : { "transport: containerstop->trainstop", GNE_TAG_TRANSPORT_CONTAINERSTOP_TRAINSTOP },
492 : { "transport: containerstop->containerstop", GNE_TAG_TRANSPORT_CONTAINERSTOP_CONTAINERSTOP },
493 : { "transport: containerstop->chargingstation", GNE_TAG_TRANSPORT_CONTAINERSTOP_CHARGINGSTATION },
494 : { "transport: containerstop->parkingarea", GNE_TAG_TRANSPORT_CONTAINERSTOP_PARKINGAREA },
495 : { "transport: chargingstation->edge", GNE_TAG_TRANSPORT_CHARGINGSTATION_EDGE },
496 : { "transport: chargingstation->busstop", GNE_TAG_TRANSPORT_CHARGINGSTATION_BUSSTOP },
497 : { "transport: chargingstation->trainstop", GNE_TAG_TRANSPORT_CHARGINGSTATION_TRAINSTOP },
498 : { "transport: chargingstation->containestop", GNE_TAG_TRANSPORT_CHARGINGSTATION_CONTAINERSTOP },
499 : { "transport: chargingstation->chargingstation", GNE_TAG_TRANSPORT_CHARGINGSTATION_CHARGINGSTATION },
500 : { "transport: chargingstation->parkingarea", GNE_TAG_TRANSPORT_CHARGINGSTATION_PARKINGAREA },
501 : { "transport: parkingarea->edge", GNE_TAG_TRANSPORT_PARKINGAREA_EDGE },
502 : { "transport: parkingarea->busstop", GNE_TAG_TRANSPORT_PARKINGAREA_BUSSTOP },
503 : { "transport: parkingarea->trainstop", GNE_TAG_TRANSPORT_PARKINGAREA_TRAINSTOP },
504 : { "transport: parkingarea->containerstop", GNE_TAG_TRANSPORT_PARKINGAREA_CONTAINERSTOP },
505 : { "transport: parkingarea->chargingstation", GNE_TAG_TRANSPORT_PARKINGAREA_CHARGINGSTATION },
506 : { "transport: parkingarea->parkingarea", GNE_TAG_TRANSPORT_PARKINGAREA_PARKINGAREA },
507 : // GNE Tranships
508 : { "tranship: edge->edge", GNE_TAG_TRANSHIP_EDGE_EDGE },
509 : { "tranship: edge->busstop", GNE_TAG_TRANSHIP_EDGE_BUSSTOP },
510 : { "tranship: edge->trainstop", GNE_TAG_TRANSHIP_EDGE_TRAINSTOP },
511 : { "tranship: edge->containerstop", GNE_TAG_TRANSHIP_EDGE_CONTAINERSTOP },
512 : { "tranship: edge->chargingstation", GNE_TAG_TRANSHIP_EDGE_CHARGINGSTATION },
513 : { "tranship: edge->parkingarea", GNE_TAG_TRANSHIP_EDGE_PARKINGAREA },
514 : { "tranship: busstop->edge", GNE_TAG_TRANSHIP_BUSSTOP_EDGE },
515 : { "tranship: busstop->busstop", GNE_TAG_TRANSHIP_BUSSTOP_BUSSTOP },
516 : { "tranship: busstop->trainstop", GNE_TAG_TRANSHIP_BUSSTOP_TRAINSTOP },
517 : { "tranship: busstop->containerstop", GNE_TAG_TRANSHIP_BUSSTOP_CONTAINERSTOP },
518 : { "tranship: busstop->chargingstation", GNE_TAG_TRANSHIP_BUSSTOP_CHARGINGSTATION },
519 : { "tranship: busstop->parkingarea", GNE_TAG_TRANSHIP_BUSSTOP_PARKINGAREA },
520 : { "tranship: trainstop->edge", GNE_TAG_TRANSHIP_TRAINSTOP_EDGE },
521 : { "tranship: trainstop->busstop", GNE_TAG_TRANSHIP_TRAINSTOP_BUSSTOP },
522 : { "tranship: trainstop->trainstop", GNE_TAG_TRANSHIP_TRAINSTOP_TRAINSTOP },
523 : { "tranship: trainstop->containerstop", GNE_TAG_TRANSHIP_TRAINSTOP_CONTAINERSTOP },
524 : { "tranship: trainstop->chargingstation", GNE_TAG_TRANSHIP_TRAINSTOP_CHARGINGSTATION },
525 : { "tranship: trainstop->parkingarea", GNE_TAG_TRANSHIP_TRAINSTOP_PARKINGAREA },
526 : { "tranship: containerstop->edge", GNE_TAG_TRANSHIP_CONTAINERSTOP_EDGE },
527 : { "tranship: containerstop->busstop", GNE_TAG_TRANSHIP_CONTAINERSTOP_BUSSTOP },
528 : { "tranship: containerstop->trainstop", GNE_TAG_TRANSHIP_CONTAINERSTOP_TRAINSTOP },
529 : { "tranship: containerstop->containerstop", GNE_TAG_TRANSHIP_CONTAINERSTOP_CONTAINERSTOP },
530 : { "tranship: containerstop->chargingstation", GNE_TAG_TRANSHIP_CONTAINERSTOP_CHARGINGSTATION },
531 : { "tranship: containerstop->parkingarea", GNE_TAG_TRANSHIP_CONTAINERSTOP_PARKINGAREA },
532 : { "tranship: chargingstation->edge", GNE_TAG_TRANSHIP_CHARGINGSTATION_EDGE },
533 : { "tranship: chargingstation->busstop", GNE_TAG_TRANSHIP_CHARGINGSTATION_BUSSTOP },
534 : { "tranship: chargingstation->trainstop", GNE_TAG_TRANSHIP_CHARGINGSTATION_TRAINSTOP },
535 : { "tranship: chargingstation->containestop", GNE_TAG_TRANSHIP_CHARGINGSTATION_CONTAINERSTOP },
536 : { "tranship: chargingstation->chargingstation", GNE_TAG_TRANSHIP_CHARGINGSTATION_CHARGINGSTATION },
537 : { "tranship: chargingstation->parkingarea", GNE_TAG_TRANSHIP_CHARGINGSTATION_PARKINGAREA },
538 : { "tranship: parkingarea->edge", GNE_TAG_TRANSHIP_PARKINGAREA_EDGE },
539 : { "tranship: parkingarea->busstop", GNE_TAG_TRANSHIP_PARKINGAREA_BUSSTOP },
540 : { "tranship: parkingarea->trainstop", GNE_TAG_TRANSHIP_PARKINGAREA_TRAINSTOP },
541 : { "tranship: parkingarea->containerstop", GNE_TAG_TRANSHIP_PARKINGAREA_CONTAINERSTOP },
542 : { "tranship: parkingarea->chargingstation", GNE_TAG_TRANSHIP_PARKINGAREA_CHARGINGSTATION },
543 : { "tranship: parkingarea->parkingarea", GNE_TAG_TRANSHIP_PARKINGAREA_PARKINGAREA },
544 : { "tranship: edges", GNE_TAG_TRANSHIP_EDGES },
545 : // GNE Container Stops
546 : { "stopContainer", GNE_TAG_STOPCONTAINER },
547 : { "stopContainer: edge", GNE_TAG_STOPCONTAINER_EDGE },
548 : { "stopContainer: busStop", GNE_TAG_STOPCONTAINER_BUSSTOP },
549 : { "stopContainer: trainStop", GNE_TAG_STOPCONTAINER_TRAINSTOP },
550 : { "stopContainer: containerStop", GNE_TAG_STOPCONTAINER_CONTAINERSTOP },
551 : { "stopContainer: chargingStation", GNE_TAG_STOPCONTAINER_CHARGINGSTATION },
552 : { "stopContainer: parkingArea", GNE_TAG_STOPCONTAINER_PARKINGAREA },
553 : // root file
554 : { "rootFile", SUMO_TAG_ROOTFILE },
555 : // netedit sets
556 : { "network", GNE_TAG_SUPERMODE_NETWORK },
557 : { "demand", GNE_TAG_SUPERMODE_DEMAND },
558 : { "data", GNE_TAG_SUPERMODE_DATA },
559 : { "stoppingPlaces", GNE_TAG_STOPPINGPLACES },
560 : { "detectors", GNE_TAG_DETECTORS },
561 : { "shapes", GNE_TAG_SHAPES },
562 : { "TAZs", GNE_TAG_TAZS },
563 : { "wires", GNE_TAG_WIRES },
564 : { "jupedsim", GNE_TAG_JUPEDSIM },
565 : { "flows", GNE_TAG_FLOWS },
566 : { "stops", GNE_TAG_STOPS },
567 : { "personPlans", GNE_TAG_PERSONPLANS },
568 : { "personTrips", GNE_TAG_PERSONTRIPS },
569 : { "rides", GNE_TAG_RIDES },
570 : { "walks", GNE_TAG_WALKS },
571 : { "personStops", GNE_TAG_PERSONSTOPS },
572 : { "containerPlans", GNE_TAG_CONTAINERPLANS },
573 : { "transports", GNE_TAG_TRANSPORTS },
574 : { "tranships", GNE_TAG_TRANSHIPS },
575 : { "containerStops", GNE_TAG_CONTAINERSTOPS },
576 : { "datas", GNE_TAG_DATAS },
577 : // attributes
578 : { "allAttributes", GNE_TAG_ATTRIBUTES_ALL },
579 : // other
580 : { "error", SUMO_TAG_ERROR },
581 : // Last element
582 : { "", SUMO_TAG_NOTHING } // -> must be the last one
583 : };
584 :
585 :
586 : SequentialStringBijection::Entry SUMOXMLDefinitions::attrs[] = {
587 : // meta value for attribute enum
588 : { "default", SUMO_ATTR_DEFAULT },
589 : // meandata
590 : { "sampledSeconds", SUMO_ATTR_SAMPLEDSECONDS },
591 : { "density", SUMO_ATTR_DENSITY },
592 : { "laneDensity", SUMO_ATTR_LANEDENSITY },
593 : { "occupancy", SUMO_ATTR_OCCUPANCY },
594 : { "waitingTime", SUMO_ATTR_WAITINGTIME },
595 : { "timeLoss", SUMO_ATTR_TIMELOSS },
596 : { "speed", SUMO_ATTR_SPEED },
597 : { "speedRelative", SUMO_ATTR_SPEEDREL },
598 : { "departed", SUMO_ATTR_DEPARTED },
599 : { "arrived", SUMO_ATTR_ARRIVED },
600 : { "entered", SUMO_ATTR_ENTERED },
601 : { "left", SUMO_ATTR_LEFT },
602 : { "vaporized", SUMO_ATTR_VAPORIZED },
603 : { "teleported", SUMO_ATTR_TELEPORTED },
604 : { "traveltime", SUMO_ATTR_TRAVELTIME },
605 : { "laneChangedFrom", SUMO_ATTR_LANECHANGEDFROM },
606 : { "laneChangedTo", SUMO_ATTR_LANECHANGEDTO },
607 : { "overlapTraveltime", SUMO_ATTR_OVERLAPTRAVELTIME },
608 : { "CO_abs", SUMO_ATTR_CO_ABS },
609 : { "CO2_abs", SUMO_ATTR_CO2_ABS },
610 : { "HC_abs", SUMO_ATTR_HC_ABS },
611 : { "PMx_abs", SUMO_ATTR_PMX_ABS },
612 : { "NOx_abs", SUMO_ATTR_NOX_ABS },
613 : { "fuel_abs", SUMO_ATTR_FUEL_ABS },
614 : { "electricity_abs", SUMO_ATTR_ELECTRICITY_ABS },
615 : { "CO_normed", SUMO_ATTR_CO_NORMED },
616 : { "CO2_normed", SUMO_ATTR_CO2_NORMED },
617 : { "HC_normed", SUMO_ATTR_HC_NORMED },
618 : { "PMx_normed", SUMO_ATTR_PMX_NORMED },
619 : { "NOx_normed", SUMO_ATTR_NOX_NORMED },
620 : { "fuel_normed", SUMO_ATTR_FUEL_NORMED },
621 : { "electricity_normed", SUMO_ATTR_ELECTRICITY_NORMED },
622 : { "CO_perVeh", SUMO_ATTR_CO_PERVEH },
623 : { "CO2_perVeh", SUMO_ATTR_CO2_PERVEH },
624 : { "HC_perVeh", SUMO_ATTR_HC_PERVEH },
625 : { "PMx_perVeh", SUMO_ATTR_PMX_PERVEH },
626 : { "NOx_perVeh", SUMO_ATTR_NOX_PERVEH },
627 : { "fuel_perVeh", SUMO_ATTR_FUEL_PERVEH },
628 : { "electricity_perVeh", SUMO_ATTR_ELECTRICITY_PERVEH },
629 : { "noise", SUMO_ATTR_NOISE },
630 : { "amount", SUMO_ATTR_AMOUNT },
631 : { "averageSpeed", SUMO_ATTR_AVERAGESPEED },
632 : // FCD
633 : { "x", SUMO_ATTR_X },
634 : { "y", SUMO_ATTR_Y },
635 : { "z", SUMO_ATTR_Z },
636 : { "angle", SUMO_ATTR_ANGLE },
637 : { "type", SUMO_ATTR_TYPE },
638 : { "pos", SUMO_ATTR_POSITION },
639 : { "edge", SUMO_ATTR_EDGE },
640 : { "lane", SUMO_ATTR_LANE },
641 : { "slope", SUMO_ATTR_SLOPE },
642 : { "signals", SUMO_ATTR_SIGNALS },
643 : { "acceleration", SUMO_ATTR_ACCELERATION },
644 : { "accelerationLat", SUMO_ATTR_ACCELERATION_LAT },
645 : { "distance", SUMO_ATTR_DISTANCE },
646 : { "leaderID", SUMO_ATTR_LEADER_ID },
647 : { "leaderSpeed", SUMO_ATTR_LEADER_SPEED },
648 : { "leaderGap", SUMO_ATTR_LEADER_GAP },
649 : { "vehicle", SUMO_ATTR_VEHICLE },
650 : { "odometer", SUMO_ATTR_ODOMETER },
651 : { "posLat", SUMO_ATTR_POSITION_LAT },
652 : { "speedLat", SUMO_ATTR_SPEED_LAT },
653 : { "stage", SUMO_ATTR_STAGE },
654 : { "speedVec", SUMO_ATTR_SPEED_VEC },
655 : { "accelerationVec", SUMO_ATTR_ACCEL_VEC },
656 : // only usable with SumoXMLAttrMask
657 : { "delay", SUMO_ATTR_DELAY },
658 : { "arrivalDelay", SUMO_ATTR_ARRIVALDELAY },
659 : // emission-output
660 : { "CO", SUMO_ATTR_CO },
661 : { "CO2", SUMO_ATTR_CO2 },
662 : { "HC", SUMO_ATTR_HC },
663 : { "PMx", SUMO_ATTR_PMX },
664 : { "NOx", SUMO_ATTR_NOX },
665 : { "fuel", SUMO_ATTR_FUEL },
666 : { "electricity", SUMO_ATTR_ELECTRICITY },
667 : { "route", SUMO_ATTR_ROUTE },
668 : { "eclass", SUMO_ATTR_ECLASS },
669 : { "waiting", SUMO_ATTR_WAITING },
670 : // meso-attributes
671 : { "segment", SUMO_ATTR_SEGMENT },
672 : { "queue", SUMO_ATTR_QUEUE },
673 : { "entryTime", SUMO_ATTR_ENTRYTIME },
674 : { "eventTime", SUMO_ATTR_EVENTTIME },
675 : { "blockTime", SUMO_ATTR_BLOCKTIME },
676 : { "tag", SUMO_ATTR_TAG },
677 : { "overlapDensity", SUMO_ATTR_OVERLAPDENSITY },
678 : { "flow", SUMO_ATTR_FLOW },
679 : { "personNumber", SUMO_ATTR_PERSON_NUMBER },
680 : { "containerNumber", SUMO_ATTR_CONTAINER_NUMBER },
681 : // Edge
682 : { "id", SUMO_ATTR_ID },
683 : { "refId", SUMO_ATTR_REFID },
684 : { "name", SUMO_ATTR_NAME },
685 : { "version", SUMO_ATTR_VERSION },
686 : { "priority", SUMO_ATTR_PRIORITY },
687 : { "numLanes", SUMO_ATTR_NUMLANES },
688 : { "friction", SUMO_ATTR_FRICTION },
689 : { "oneway", SUMO_ATTR_ONEWAY },
690 : { "width", SUMO_ATTR_WIDTH },
691 : { "widthResolution", SUMO_ATTR_WIDTHRESOLUTION },
692 : { "maxWidth", SUMO_ATTR_MAXWIDTH },
693 : { "minWidth", SUMO_ATTR_MINWIDTH },
694 : { "sidewalkWidth", SUMO_ATTR_SIDEWALKWIDTH },
695 : { "bikeLaneWidth", SUMO_ATTR_BIKELANEWIDTH },
696 : { "remove", SUMO_ATTR_REMOVE },
697 : { "length", SUMO_ATTR_LENGTH },
698 : { "bidi", SUMO_ATTR_BIDI },
699 : { "routingType", SUMO_ATTR_ROUTINGTYPE },
700 : // Split
701 : { "idBefore", SUMO_ATTR_ID_BEFORE },
702 : { "idAfter", SUMO_ATTR_ID_AFTER },
703 : // Positions
704 : { "center", SUMO_ATTR_CENTER },
705 : { "centerX", SUMO_ATTR_CENTER_X },
706 : { "centerY", SUMO_ATTR_CENTER_Y },
707 : { "centerZ", SUMO_ATTR_CENTER_Z },
708 :
709 : { "key", SUMO_ATTR_KEY },
710 : { "requestSize", SUMO_ATTR_REQUESTSIZE },
711 : { "request", SUMO_ATTR_REQUEST },
712 : { "response", SUMO_ATTR_RESPONSE },
713 : { "programID", SUMO_ATTR_PROGRAMID },
714 : { "phase", SUMO_ATTR_PHASE },
715 : { "offset", SUMO_ATTR_OFFSET },
716 : { "endOffset", SUMO_ATTR_ENDOFFSET },
717 : { "incLanes", SUMO_ATTR_INCLANES },
718 : { "intLanes", SUMO_ATTR_INTLANES },
719 :
720 : { "weight", SUMO_ATTR_WEIGHT },
721 : { "node", SUMO_ATTR_NODE },
722 : { "edges", SUMO_ATTR_EDGES },
723 : // Vehicle
724 : { "depart", SUMO_ATTR_DEPART },
725 : { "departLane", SUMO_ATTR_DEPARTLANE },
726 : { "departPos", SUMO_ATTR_DEPARTPOS },
727 : { "departPosLat", SUMO_ATTR_DEPARTPOS_LAT },
728 : { "departSpeed", SUMO_ATTR_DEPARTSPEED },
729 : { "departEdge", SUMO_ATTR_DEPARTEDGE },
730 : { "arrivalLane", SUMO_ATTR_ARRIVALLANE },
731 : { "arrivalPos", SUMO_ATTR_ARRIVALPOS },
732 : { "arrivalPosRandomized", SUMO_ATTR_ARRIVALPOS_RANDOMIZED },
733 : { "arrivalPosLat", SUMO_ATTR_ARRIVALPOS_LAT },
734 : { "arrivalSpeed", SUMO_ATTR_ARRIVALSPEED },
735 : { "arrivalEdge", SUMO_ATTR_ARRIVALEDGE },
736 : { "maxSpeed", SUMO_ATTR_MAXSPEED },
737 : { "desiredMaxSpeed", SUMO_ATTR_DESIRED_MAXSPEED },
738 : { "maxSpeedLat", SUMO_ATTR_MAXSPEED_LAT },
739 : { "latAlignment", SUMO_ATTR_LATALIGNMENT },
740 : { "minGapLat", SUMO_ATTR_MINGAP_LAT },
741 : { "accel", SUMO_ATTR_ACCEL },
742 : { "decel", SUMO_ATTR_DECEL },
743 : { "emergencyDecel", SUMO_ATTR_EMERGENCYDECEL },
744 : { "apparentDecel", SUMO_ATTR_APPARENTDECEL },
745 : { "maxAccelProfile", SUMO_ATTR_MAXACCEL_PROFILE },
746 : { "desAccelProfile", SUMO_ATTR_DESACCEL_PROFILE },
747 : { "actionStepLength", SUMO_ATTR_ACTIONSTEPLENGTH },
748 : { "vClass", SUMO_ATTR_VCLASS },
749 : { "vClasses", SUMO_ATTR_VCLASSES },
750 : { "exceptions", SUMO_ATTR_EXCEPTIONS },
751 : { "repno", SUMO_ATTR_REPNUMBER },
752 : { "speedFactor", SUMO_ATTR_SPEEDFACTOR },
753 : { "speedDev", SUMO_ATTR_SPEEDDEV },
754 : { "laneChangeModel", SUMO_ATTR_LANE_CHANGE_MODEL },
755 : { "carFollowModel", SUMO_ATTR_CAR_FOLLOW_MODEL },
756 : { "minGap", SUMO_ATTR_MINGAP },
757 : { "collisionMinGapFactor", SUMO_ATTR_COLLISION_MINGAP_FACTOR },
758 : { "boardingDuration", SUMO_ATTR_BOARDING_DURATION },
759 : { "loadingDuration", SUMO_ATTR_LOADING_DURATION },
760 : { "boardingFactor", SUMO_ATTR_BOARDING_FACTOR },
761 : { "scale", SUMO_ATTR_SCALE },
762 : { "insertionChecks", SUMO_ATTR_INSERTIONCHECKS },
763 : { "timeToTeleport", SUMO_ATTR_TIME_TO_TELEPORT },
764 : { "timeToTeleportBidi", SUMO_ATTR_TIME_TO_TELEPORT_BIDI },
765 : { "speedFactorPremature", SUMO_ATTR_SPEEDFACTOR_PREMATURE },
766 : { "maneuverAngleTimes", SUMO_ATTR_MANEUVER_ANGLE_TIMES },
767 : { "parkingBadges", SUMO_ATTR_PARKING_BADGES },
768 : // MSDevice_ElecHybrid
769 : { "overheadWireChargingPower", SUMO_ATTR_OVERHEADWIRECHARGINGPOWER },
770 : // OverheadWire
771 : { "overheadWireSegment", SUMO_ATTR_OVERHEAD_WIRE_SEGMENT },
772 : { "segments", SUMO_ATTR_OVERHEAD_WIRE_SEGMENTS }, // <- deprecate
773 : { "voltage", SUMO_ATTR_VOLTAGE },
774 : { "voltageSource", SUMO_ATTR_VOLTAGESOURCE },
775 : { "currentLimit", SUMO_ATTR_CURRENTLIMIT },
776 : { "substationId", SUMO_ATTR_SUBSTATIONID },
777 : { "wireResistivity", SUMO_ATTR_OVERHEAD_WIRE_RESISTIVITY },
778 : { "forbiddenInnerLanes", SUMO_ATTR_OVERHEAD_WIRE_FORBIDDEN },
779 : { "clamps", SUMO_ATTR_OVERHEAD_WIRE_CLAMPS }, // <- deprecate
780 : { "idSegmentStartClamp", SUMO_ATTR_OVERHEAD_WIRE_CLAMP_START }, // <- deprecate
781 : { "idSegmentEndClamp", SUMO_ATTR_OVERHEAD_WIRE_CLAMP_END }, // <- deprecate
782 : { "wireClampStart", SUMO_ATTR_OVERHEAD_WIRECLAMP_START },
783 : { "wireClampEnd", SUMO_ATTR_OVERHEAD_WIRECLAMP_END },
784 : { "wireClampLaneStart", SUMO_ATTR_OVERHEAD_WIRECLAMP_LANESTART },
785 : { "wireClampLaneEnd", SUMO_ATTR_OVERHEAD_WIRECLAMP_LANEEND },
786 : // Charging Station
787 : { "power", SUMO_ATTR_CHARGINGPOWER },
788 : { "totalPower", SUMO_ATTR_TOTALPOWER },
789 : { "efficiency", SUMO_ATTR_EFFICIENCY },
790 : { "chargeInTransit", SUMO_ATTR_CHARGEINTRANSIT },
791 : { "chargeDelay", SUMO_ATTR_CHARGEDELAY},
792 : { "chargeType", SUMO_ATTR_CHARGETYPE},
793 : // MSDevice_Battery
794 : { "actualBatteryCapacity", SUMO_ATTR_ACTUALBATTERYCAPACITY },
795 : { "chargeLevel", SUMO_ATTR_CHARGELEVEL },
796 : { "maximumBatteryCapacity", SUMO_ATTR_MAXIMUMBATTERYCAPACITY },
797 : { "maximumChargeRate", SUMO_ATTR_MAXIMUMCHARGERATE },
798 : { "chargeLevelTable", SUMO_ATTR_CHARGELEVELTABLE },
799 : { "chargeCurveTable", SUMO_ATTR_CHARGECURVETABLE },
800 : { "maximumPower", SUMO_ATTR_MAXIMUMPOWER },
801 : { "vehicleMass", SUMO_ATTR_VEHICLEMASS },
802 : { "rotatingMass", SUMO_ATTR_ROTATINGMASS },
803 : { "frontSurfaceArea", SUMO_ATTR_FRONTSURFACEAREA },
804 : { "airDragCoefficient", SUMO_ATTR_AIRDRAGCOEFFICIENT },
805 : { "internalMomentOfInertia", SUMO_ATTR_INTERNALMOMENTOFINERTIA },
806 : { "radialDragCoefficient", SUMO_ATTR_RADIALDRAGCOEFFICIENT },
807 : { "rollDragCoefficient", SUMO_ATTR_ROLLDRAGCOEFFICIENT },
808 : { "constantPowerIntake", SUMO_ATTR_CONSTANTPOWERINTAKE },
809 : { "propulsionEfficiency", SUMO_ATTR_PROPULSIONEFFICIENCY },
810 : { "recuperationEfficiency", SUMO_ATTR_RECUPERATIONEFFICIENCY },
811 : { "recuperationEfficiencyByDecel", SUMO_ATTR_RECUPERATIONEFFICIENCY_BY_DECELERATION },
812 : { "stoppingTreshold", SUMO_ATTR_STOPPINGTHRESHOLD },
813 : // MSDevice_Tripinfo
814 : { "waitingCount", SUMO_ATTR_WAITINGCOUNT },
815 : { "stopTime", SUMO_ATTR_STOPTIME },
816 :
817 : // MSElecHybridExport
818 : { "overheadWireId", SUMO_ATTR_OVERHEADWIREID },
819 : { "tractionSubstationId", SUMO_ATTR_TRACTIONSUBSTATIONID },
820 : { "current", SUMO_ATTR_CURRENTFROMOVERHEADWIRE },
821 : { "circuitVoltage", SUMO_ATTR_VOLTAGEOFOVERHEADWIRE },
822 : { "alphaCircuitSolver", SUMO_ATTR_ALPHACIRCUITSOLVER },
823 : { "recuperationEnabled", SUMO_ATTR_RECUPERATIONENABLE },
824 : // MSBatteryExport
825 : { "energyConsumed", SUMO_ATTR_ENERGYCONSUMED },
826 : { "totalEnergyConsumed", SUMO_ATTR_TOTALENERGYCONSUMED },
827 : { "totalEnergyRegenerated", SUMO_ATTR_TOTALENERGYREGENERATED },
828 : { "chargingStationId", SUMO_ATTR_CHARGINGSTATIONID },
829 : { "energyCharged", SUMO_ATTR_ENERGYCHARGED },
830 : { "energyChargedInTransit", SUMO_ATTR_ENERGYCHARGEDINTRANSIT },
831 : { "energyChargedStopped", SUMO_ATTR_ENERGYCHARGEDSTOPPED },
832 : { "posOnLane", SUMO_ATTR_POSONLANE },
833 : { "timeStopped", SUMO_ATTR_TIMESTOPPED },
834 : // MMPEVEM
835 : { "wheelRadius", SUMO_ATTR_WHEELRADIUS },
836 : { "maximumTorque", SUMO_ATTR_MAXIMUMTORQUE },
837 : { "maximumSpeed", SUMO_ATTR_MAXIMUMSPEED },
838 : { "gearEfficiency", SUMO_ATTR_GEAREFFICIENCY },
839 : { "gearRatio", SUMO_ATTR_GEARRATIO },
840 : { "maximumRecuperationTorque", SUMO_ATTR_MAXIMUMRECUPERATIONTORQUE },
841 : { "maximumRecuperationPower", SUMO_ATTR_MAXIMUMRECUPERATIONPOWER },
842 : { "internalBatteryResistance", SUMO_ATTR_INTERNALBATTERYRESISTANCE },
843 : { "nominalBatteryVoltage", SUMO_ATTR_NOMINALBATTERYVOLTAGE },
844 : { "powerLossMap", SUMO_ATTR_POWERLOSSMAP },
845 : // ChargingStation output
846 : { "chargingStatus", SUMO_ATTR_CHARGING_STATUS },
847 : { "totalEnergyCharged", SUMO_ATTR_TOTALENERGYCHARGED },
848 : { "chargingSteps", SUMO_ATTR_CHARGINGSTEPS },
849 : { "totalEnergyChargedIntoVehicle", SUMO_ATTR_TOTALENERGYCHARGED_VEHICLE },
850 : { "chargingBegin", SUMO_ATTR_CHARGINGBEGIN },
851 : { "chargingEnd", SUMO_ATTR_CHARGINGEND },
852 : { "partialCharge", SUMO_ATTR_PARTIALCHARGE },
853 : { "minPower", SUMO_ATTR_MINPOWER },
854 : { "minCharge", SUMO_ATTR_MINCHARGE },
855 : { "maxCharge", SUMO_ATTR_MAXCHARGE },
856 : { "minEfficiency", SUMO_ATTR_MINEFFICIENCY },
857 : { "maxEfficiency", SUMO_ATTR_MAXEFFICIENCY },
858 :
859 : // general emission / consumption
860 : { "shutOffStopDuration", SUMO_ATTR_SHUT_OFF_STOP },
861 : { "shutOffAutoDuration", SUMO_ATTR_SHUT_OFF_AUTO },
862 : { "loading", SUMO_ATTR_LOADING },
863 :
864 : /// @name carFollow model attributes
865 : { "sigma", SUMO_ATTR_SIGMA },
866 : { "sigmaStep", SUMO_ATTR_SIGMA_STEP },
867 : { "startupDelay", SUMO_ATTR_STARTUP_DELAY },
868 : { "tau", SUMO_ATTR_TAU },
869 : { "tmp1", SUMO_ATTR_TMP1 },
870 : { "tmp2", SUMO_ATTR_TMP2 },
871 : { "tmp3", SUMO_ATTR_TMP3 },
872 : { "tmp4", SUMO_ATTR_TMP4 },
873 : { "tmp5", SUMO_ATTR_TMP5 },
874 :
875 : { "vehdynamics", SUMO_ATTR_CF_EIDM_USEVEHDYNAMICS },
876 : { "tpreview", SUMO_ATTR_CF_EIDM_T_LOOK_AHEAD },
877 : { "tPersDrive", SUMO_ATTR_CF_EIDM_T_PERSISTENCE_DRIVE },
878 : { "treaction", SUMO_ATTR_CF_EIDM_T_REACTION },
879 : { "tPersEstimate", SUMO_ATTR_CF_EIDM_T_PERSISTENCE_ESTIMATE },
880 : { "ccoolness", SUMO_ATTR_CF_EIDM_C_COOLNESS },
881 : { "sigmaleader", SUMO_ATTR_CF_EIDM_SIG_LEADER },
882 : { "sigmagap", SUMO_ATTR_CF_EIDM_SIG_GAP },
883 : { "sigmaerror", SUMO_ATTR_CF_EIDM_SIG_ERROR },
884 : { "jerkmax", SUMO_ATTR_CF_EIDM_JERK_MAX },
885 : { "epsilonacc", SUMO_ATTR_CF_EIDM_EPSILON_ACC },
886 : { "taccmax", SUMO_ATTR_CF_EIDM_T_ACC_MAX },
887 : { "Mflatness", SUMO_ATTR_CF_EIDM_M_FLATNESS },
888 : { "Mbegin", SUMO_ATTR_CF_EIDM_M_BEGIN },
889 : { "maxvehpreview", SUMO_ATTR_CF_EIDM_MAX_VEH_PREVIEW },
890 :
891 : { "speedControlGain", SUMO_ATTR_SC_GAIN },
892 : { "gapClosingControlGainSpeed", SUMO_ATTR_GCC_GAIN_SPEED },
893 : { "gapClosingControlGainSpace", SUMO_ATTR_GCC_GAIN_SPACE },
894 : { "gapControlGainSpeed", SUMO_ATTR_GC_GAIN_SPEED },
895 : { "gapControlGainSpace", SUMO_ATTR_GC_GAIN_SPACE },
896 : { "collisionAvoidanceGainSpeed", SUMO_ATTR_CA_GAIN_SPEED },
897 : { "collisionAvoidanceGainSpace", SUMO_ATTR_CA_GAIN_SPACE },
898 : { "collisionAvoidanceOverride", SUMO_ATTR_CA_OVERRIDE },
899 :
900 : { "speedControlGainCACC", SUMO_ATTR_SC_GAIN_CACC },
901 : { "gapClosingControlGainGap", SUMO_ATTR_GCC_GAIN_GAP_CACC },
902 : { "gapClosingControlGainGapDot", SUMO_ATTR_GCC_GAIN_GAP_DOT_CACC },
903 : { "gapControlGainGap", SUMO_ATTR_GC_GAIN_GAP_CACC },
904 : { "gapControlGainGapDot", SUMO_ATTR_GC_GAIN_GAP_DOT_CACC },
905 : { "collisionAvoidanceGainGap", SUMO_ATTR_CA_GAIN_GAP_CACC },
906 : { "collisionAvoidanceGainGapDot", SUMO_ATTR_CA_GAIN_GAP_DOT_CACC },
907 : { "tauCACCToACC", SUMO_ATTR_HEADWAY_TIME_CACC_TO_ACC },
908 : { "speedControlMinGap", SUMO_ATTR_SC_MIN_GAP },
909 : { "applyDriverState", SUMO_ATTR_APPLYDRIVERSTATE },
910 :
911 : { "trainType", SUMO_ATTR_TRAIN_TYPE },
912 : { "speedTable", SUMO_ATTR_SPEED_TABLE },
913 : { "tractionTable", SUMO_ATTR_TRACTION_TABLE },
914 : { "resistanceTable", SUMO_ATTR_RESISTANCE_TABLE },
915 : { "massFactor", SUMO_ATTR_MASSFACTOR },
916 : { "maxPower", SUMO_ATTR_MAXPOWER },
917 : { "maxTraction", SUMO_ATTR_MAXTRACTION },
918 : { "resCoef_constant", SUMO_ATTR_RESISTANCE_COEFFICIENT_CONSTANT },
919 : { "resCoef_linear", SUMO_ATTR_RESISTANCE_COEFFICIENT_LINEAR },
920 : { "resCoef_quadratic", SUMO_ATTR_RESISTANCE_COEFFICIENT_QUADRATIC },
921 : /// @}
922 :
923 : /// @name Lane changing model attributes
924 : /// @{
925 : { "lcStrategic", SUMO_ATTR_LCA_STRATEGIC_PARAM },
926 : { "lcCooperative", SUMO_ATTR_LCA_COOPERATIVE_PARAM },
927 : { "lcSpeedGain", SUMO_ATTR_LCA_SPEEDGAIN_PARAM },
928 : { "lcKeepRight", SUMO_ATTR_LCA_KEEPRIGHT_PARAM },
929 : { "lcSublane", SUMO_ATTR_LCA_SUBLANE_PARAM },
930 : { "lcOpposite", SUMO_ATTR_LCA_OPPOSITE_PARAM },
931 : { "lcPushy", SUMO_ATTR_LCA_PUSHY },
932 : { "lcPushyGap", SUMO_ATTR_LCA_PUSHYGAP },
933 : { "lcStrategicLookahead", SUMO_ATTR_LCA_STRATEGIC_LOOKAHEAD },
934 : { "lcAssertive", SUMO_ATTR_LCA_ASSERTIVE },
935 : { "lcImpatience", SUMO_ATTR_LCA_IMPATIENCE },
936 : { "lcTimeToImpatience", SUMO_ATTR_LCA_TIME_TO_IMPATIENCE },
937 : { "lcAccelLat", SUMO_ATTR_LCA_ACCEL_LAT },
938 : { "lcTurnAlignmentDistance", SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE },
939 : { "lcOvertakeRight", SUMO_ATTR_LCA_OVERTAKE_RIGHT },
940 : { "lcLookaheadLeft", SUMO_ATTR_LCA_LOOKAHEADLEFT },
941 : { "lcSpeedGainRight", SUMO_ATTR_LCA_SPEEDGAINRIGHT },
942 : { "lcSpeedGainLookahead", SUMO_ATTR_LCA_SPEEDGAIN_LOOKAHEAD },
943 : { "lcSpeedGainRemainTime", SUMO_ATTR_LCA_SPEEDGAIN_REMAIN_TIME },
944 : { "lcSpeedGainUrgency", SUMO_ATTR_LCA_SPEEDGAIN_URGENCY },
945 : { "lcCooperativeRoundabout", SUMO_ATTR_LCA_COOPERATIVE_ROUNDABOUT },
946 : { "lcCooperativeSpeed", SUMO_ATTR_LCA_COOPERATIVE_SPEED },
947 : { "lcCooperativeHelpTime", SUMO_ATTR_LCA_COOPERATIVE_HELPTIME },
948 : { "lcMaxSpeedLatStanding", SUMO_ATTR_LCA_MAXSPEEDLATSTANDING },
949 : { "lcMaxSpeedLatFactor", SUMO_ATTR_LCA_MAXSPEEDLATFACTOR },
950 : { "lcMaxDistLatStanding", SUMO_ATTR_LCA_MAXDISTLATSTANDING },
951 : { "lcLaneDiscipline", SUMO_ATTR_LCA_LANE_DISCIPLINE },
952 : { "lcSigma", SUMO_ATTR_LCA_SIGMA },
953 : { "lcKeepRightAcceptanceTime", SUMO_ATTR_LCA_KEEPRIGHT_ACCEPTANCE_TIME },
954 : { "lcOvertakeDeltaSpeedFactor", SUMO_ATTR_LCA_OVERTAKE_DELTASPEED_FACTOR },
955 : { "lcContRight", SUMO_ATTR_LCA_CONTRIGHT },
956 : { "lcExperimental1", SUMO_ATTR_LCA_EXPERIMENTAL1 },
957 : /// @}
958 :
959 : /// @name junction model attributes
960 : /// @{
961 : { "jmCrossingGap", SUMO_ATTR_JM_CROSSING_GAP },
962 : { "jmDriveAfterYellowTime", SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME },
963 : { "jmDriveAfterRedTime", SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME },
964 : { "jmDriveRedSpeed", SUMO_ATTR_JM_DRIVE_RED_SPEED },
965 : { "jmIgnoreKeepClearTime", SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME },
966 : { "jmIgnoreFoeSpeed", SUMO_ATTR_JM_IGNORE_FOE_SPEED },
967 : { "jmIgnoreFoeProb", SUMO_ATTR_JM_IGNORE_FOE_PROB },
968 : { "jmIgnoreJunctionFoeProb", SUMO_ATTR_JM_IGNORE_JUNCTION_FOE_PROB },
969 : { "jmSigmaMinor", SUMO_ATTR_JM_SIGMA_MINOR },
970 : { "jmStoplineGap", SUMO_ATTR_JM_STOPLINE_GAP },
971 : { "jmStoplineGapMinor", SUMO_ATTR_JM_STOPLINE_GAP_MINOR },
972 : { "jmStoplineCrossingGap", SUMO_ATTR_JM_STOPLINE_CROSSING_GAP },
973 : { "jmTimegapMinor", SUMO_ATTR_JM_TIMEGAP_MINOR },
974 : { "jmExtraGap", SUMO_ATTR_JM_EXTRA_GAP },
975 : { "jmAdvance", SUMO_ATTR_JM_ADVANCE },
976 : { "jmStopSignWait", SUMO_ATTR_JM_STOPSIGN_WAIT },
977 : { "jmAllwayStopWait", SUMO_ATTR_JM_ALLWAYSTOP_WAIT },
978 : { "junctionModel.ignoreIDs", SUMO_ATTR_JM_IGNORE_IDS },
979 : { "junctionModel.ignoreTypes", SUMO_ATTR_JM_IGNORE_TYPES },
980 : { "carFollowModel.ignoreIDs", SUMO_ATTR_CF_IGNORE_IDS },
981 : { "carFollowModel.ignoreTypes", SUMO_ATTR_CF_IGNORE_TYPES },
982 : /// @}
983 : { "flexArrival", SUMO_ATTR_FLEX_ARRIVAL },
984 :
985 : { "last", SUMO_ATTR_LAST },
986 : { "cost", SUMO_ATTR_COST },
987 : { "costs", SUMO_ATTR_COSTS },
988 : { "savings", SUMO_ATTR_SAVINGS },
989 : { "exitTimes", SUMO_ATTR_EXITTIMES },
990 : { "probability", SUMO_ATTR_PROB },
991 : { "replacedAtTime", SUMO_ATTR_REPLACED_AT_TIME },
992 : { "replacedOnIndex", SUMO_ATTR_REPLACED_ON_INDEX },
993 : { "count", SUMO_ATTR_COUNT },
994 : { "probabilities", SUMO_ATTR_PROBS },
995 : { "routes", SUMO_ATTR_ROUTES },
996 : { "vTypes", SUMO_ATTR_VTYPES },
997 : { "nextEdges", SUMO_ATTR_NEXT_EDGES },
998 : { "deterministic", SUMO_ATTR_DETERMINISTIC },
999 :
1000 : { "lanes", SUMO_ATTR_LANES },
1001 : { "from", SUMO_ATTR_FROM },
1002 : { "to", SUMO_ATTR_TO },
1003 : { "fromLonLat", SUMO_ATTR_FROMLONLAT },
1004 : { "toLonLat", SUMO_ATTR_TOLONLAT },
1005 : { "fromXY", SUMO_ATTR_FROMXY },
1006 : { "toXY", SUMO_ATTR_TOXY },
1007 : { "fromJunction", SUMO_ATTR_FROM_JUNCTION },
1008 : { "toJunction", SUMO_ATTR_TO_JUNCTION },
1009 : { "period", SUMO_ATTR_PERIOD },
1010 : { "repeat", SUMO_ATTR_REPEAT },
1011 : { "cycleTime", SUMO_ATTR_CYCLETIME },
1012 : { "fromTaz", SUMO_ATTR_FROM_TAZ },
1013 : { "toTaz", SUMO_ATTR_TO_TAZ },
1014 : { "reroute", SUMO_ATTR_REROUTE },
1015 : { "personCapacity", SUMO_ATTR_PERSON_CAPACITY },
1016 : { "containerCapacity", SUMO_ATTR_CONTAINER_CAPACITY },
1017 : { "parkingLength", SUMO_ATTR_PARKING_LENGTH },
1018 : { "modes", SUMO_ATTR_MODES },
1019 : { "walkFactor", SUMO_ATTR_WALKFACTOR },
1020 :
1021 : { "function", SUMO_ATTR_FUNCTION },
1022 : { "freq", SUMO_ATTR_FREQUENCY },
1023 : { "style", SUMO_ATTR_STYLE },
1024 : { "file", SUMO_ATTR_FILE },
1025 : { "local", SUMO_ATTR_LOCAL },
1026 : { "number", SUMO_ATTR_NUMBER },
1027 : { "duration", SUMO_ATTR_DURATION },
1028 : { "until", SUMO_ATTR_UNTIL },
1029 : { "arrival", SUMO_ATTR_ARRIVAL },
1030 : { "extension", SUMO_ATTR_EXTENSION },
1031 : { "started", SUMO_ATTR_STARTED },
1032 : { "ended", SUMO_ATTR_ENDED },
1033 : { "routeProbe", SUMO_ATTR_ROUTEPROBE },
1034 : { "crossingEdges", SUMO_ATTR_CROSSING_EDGES },
1035 : // Traffic light & Nodes
1036 : { "time", SUMO_ATTR_TIME },
1037 : { "begin", SUMO_ATTR_BEGIN },
1038 : { "end", SUMO_ATTR_END },
1039 : { "tl", SUMO_ATTR_TLID },
1040 : { "tlType", SUMO_ATTR_TLTYPE },
1041 : { "tlLayout", SUMO_ATTR_TLLAYOUT },
1042 : { "linkIndex", SUMO_ATTR_TLLINKINDEX },
1043 : { "linkIndex2", SUMO_ATTR_TLLINKINDEX2 },
1044 : { "shape", SUMO_ATTR_SHAPE },
1045 : { "outlineShape", SUMO_ATTR_OUTLINESHAPE },
1046 : { "spreadType", SUMO_ATTR_SPREADTYPE },
1047 : { "radius", SUMO_ATTR_RADIUS },
1048 : { "customShape", SUMO_ATTR_CUSTOMSHAPE },
1049 : { "keepClear", SUMO_ATTR_KEEP_CLEAR },
1050 : { "indirect", SUMO_ATTR_INDIRECT },
1051 : { "rightOfWay", SUMO_ATTR_RIGHT_OF_WAY },
1052 : { "fringe", SUMO_ATTR_FRINGE },
1053 : { "roundabout", SUMO_ATTR_ROUNDABOUT },
1054 : { "color", SUMO_ATTR_COLOR },
1055 : { "dir", SUMO_ATTR_DIR },
1056 : { "state", SUMO_ATTR_STATE },
1057 : { "lcState", SUMO_ATTR_LCSTATE },
1058 : { "lcState2", SUMO_ATTR_LCSTATE2 },
1059 : { "lcStateBase", SUMO_ATTR_LCSTATE_BASE },
1060 : { "icon", SUMO_ATTR_ICON },
1061 : { "layer", SUMO_ATTR_LAYER },
1062 : { "fill", SUMO_ATTR_FILL },
1063 : { "lineWidth", SUMO_ATTR_LINEWIDTH },
1064 : { "prefix", SUMO_ATTR_PREFIX },
1065 : { "discard", SUMO_ATTR_DISCARD },
1066 :
1067 : { "fromLane", SUMO_ATTR_FROM_LANE },
1068 : { "toLane", SUMO_ATTR_TO_LANE },
1069 : { "dest", SUMO_ATTR_DEST },
1070 : { "source", SUMO_ATTR_SOURCE },
1071 : { "via", SUMO_ATTR_VIA },
1072 : { "viaLonLat", SUMO_ATTR_VIALONLAT },
1073 : { "viaXY", SUMO_ATTR_VIAXY },
1074 : { "viaJunctions", SUMO_ATTR_VIAJUNCTIONS },
1075 : { "nodes", SUMO_ATTR_NODES },
1076 : { "visibility", SUMO_ATTR_VISIBILITY_DISTANCE },
1077 : { "reset", SUMO_ATTR_RESET },
1078 :
1079 : { "minDur", SUMO_ATTR_MINDURATION },
1080 : { "maxDur", SUMO_ATTR_MAXDURATION },
1081 : { "earliestEnd", SUMO_ATTR_EARLIEST_END },
1082 : { "latestEnd", SUMO_ATTR_LATEST_END },
1083 : { "earlyTarget", SUMO_ATTR_EARLY_TARGET },
1084 : { "finalTarget", SUMO_ATTR_FINAL_TARGET },
1085 : { "check", SUMO_ATTR_CHECK },
1086 : { "nArgs", SUMO_ATTR_NARGS },
1087 : { "vehext", SUMO_ATTR_VEHICLEEXTENSION },
1088 : { "yellow", SUMO_ATTR_YELLOW },
1089 : { "red", SUMO_ATTR_RED },
1090 : { "next", SUMO_ATTR_NEXT },
1091 : { "foes", SUMO_ATTR_FOES },
1092 : { "constraints", SUMO_ATTR_CONSTRAINTS },
1093 : { "rail", SUMO_ATTR_RAIL },
1094 : { "detectors", SUMO_ATTR_DETECTORS },
1095 : { "conditions", SUMO_ATTR_CONDITIONS },
1096 : { "saveDetectors", SUMO_ATTR_SAVE_DETECTORS },
1097 : { "saveConditions", SUMO_ATTR_SAVE_CONDITIONS },
1098 :
1099 : // E2 detector
1100 : { "cont", SUMO_ATTR_CONT },
1101 : { "contPos", SUMO_ATTR_CONTPOS },
1102 : { "timeThreshold", SUMO_ATTR_HALTING_TIME_THRESHOLD },
1103 : { "speedThreshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
1104 : { "jamThreshold", SUMO_ATTR_JAM_DIST_THRESHOLD },
1105 : { "show", SUMO_ATTR_SHOW_DETECTOR },
1106 : // E3 detector
1107 : { "openEntry", SUMO_ATTR_OPEN_ENTRY },
1108 : { "expectArrival", SUMO_ATTR_EXPECT_ARRIVAL },
1109 :
1110 : { "wautID", SUMO_ATTR_WAUT_ID },
1111 : { "junctionID", SUMO_ATTR_JUNCTION_ID },
1112 : { "procedure", SUMO_ATTR_PROCEDURE },
1113 : { "synchron", SUMO_ATTR_SYNCHRON },
1114 : { "refTime", SUMO_ATTR_REF_TIME },
1115 : { "startProg", SUMO_ATTR_START_PROG },
1116 : { "off", SUMO_ATTR_OFF },
1117 : { "friendlyPos", SUMO_ATTR_FRIENDLY_POS },
1118 : { "splitByType", SUMO_ATTR_SPLIT_VTYPE },
1119 : { "uncontrolled", SUMO_ATTR_UNCONTROLLED },
1120 : { "pass", SUMO_ATTR_PASS },
1121 : { "busStop", SUMO_ATTR_BUS_STOP },
1122 : { "trainStop", SUMO_ATTR_TRAIN_STOP },
1123 : { "containerStop", SUMO_ATTR_CONTAINER_STOP },
1124 : { "parkingArea", SUMO_ATTR_PARKING_AREA },
1125 : { "roadsideCapacity", SUMO_ATTR_ROADSIDE_CAPACITY },
1126 : { "acceptedBadges", SUMO_ATTR_ACCEPTED_BADGES },
1127 : { "onRoad", SUMO_ATTR_ONROAD },
1128 : { "chargingStation", SUMO_ATTR_CHARGING_STATION },
1129 : { "group", SUMO_ATTR_GROUP },
1130 : { "line", SUMO_ATTR_LINE },
1131 : { "lines", SUMO_ATTR_LINES },
1132 : { "tripId", SUMO_ATTR_TRIP_ID },
1133 : { "split", SUMO_ATTR_SPLIT },
1134 : { "join", SUMO_ATTR_JOIN },
1135 : { "intended", SUMO_ATTR_INTENDED },
1136 : { "onDemand", SUMO_ATTR_ONDEMAND },
1137 : { "jump", SUMO_ATTR_JUMP },
1138 : { "jumpUntil", SUMO_ATTR_JUMP_UNTIL },
1139 : { "usedEnded", SUMO_ATTR_USED_ENDED },
1140 : { "collision", SUMO_ATTR_COLLISION },
1141 : { "value", SUMO_ATTR_VALUE },
1142 : { "prohibitor", SUMO_ATTR_PROHIBITOR },
1143 : { "prohibited", SUMO_ATTR_PROHIBITED },
1144 : { "allow", SUMO_ATTR_ALLOW },
1145 : { "disallow", SUMO_ATTR_DISALLOW },
1146 : { "prefer", SUMO_ATTR_PREFER },
1147 : { "changeLeft", SUMO_ATTR_CHANGE_LEFT },
1148 : { "changeRight", SUMO_ATTR_CHANGE_RIGHT },
1149 : { "controlledInner", SUMO_ATTR_CONTROLLED_INNER },
1150 : { "vehsPerHour", SUMO_ATTR_VEHSPERHOUR },
1151 : { "personsPerHour", SUMO_ATTR_PERSONSPERHOUR },
1152 : { "containersPerHour", SUMO_ATTR_CONTAINERSPERHOUR },
1153 : { "perHour", SUMO_ATTR_PERHOUR },
1154 : { "done", SUMO_ATTR_DONE },
1155 : { "output", SUMO_ATTR_OUTPUT },
1156 : { "height", SUMO_ATTR_HEIGHT },
1157 : { "guiShape", SUMO_ATTR_GUISHAPE },
1158 : { "osgFile", SUMO_ATTR_OSGFILE },
1159 : { "imgFile", SUMO_ATTR_IMGFILE },
1160 : { "emissionClass", SUMO_ATTR_EMISSIONCLASS },
1161 : { "mass", SUMO_ATTR_MASS },
1162 : { "impatience", SUMO_ATTR_IMPATIENCE },
1163 : { "startPos", SUMO_ATTR_STARTPOS },
1164 : { "endPos", SUMO_ATTR_ENDPOS },
1165 : { "triggered", SUMO_ATTR_TRIGGERED },
1166 : { "containerTriggered", SUMO_ATTR_CONTAINER_TRIGGERED },
1167 : { "parking", SUMO_ATTR_PARKING },
1168 : { "expected", SUMO_ATTR_EXPECTED },
1169 : { "permitted", SUMO_ATTR_PERMITTED },
1170 : { "expectedContainers", SUMO_ATTR_EXPECTED_CONTAINERS },
1171 : { "index", SUMO_ATTR_INDEX },
1172 :
1173 : { "entering", SUMO_ATTR_ENTERING },
1174 : { "excludeEmpty", SUMO_ATTR_EXCLUDE_EMPTY },
1175 : { "withInternal", SUMO_ATTR_WITH_INTERNAL },
1176 : { "trackVehicles", SUMO_ATTR_TRACK_VEHICLES },
1177 : { "detectPersons", SUMO_ATTR_DETECT_PERSONS },
1178 : { "maxTraveltime", SUMO_ATTR_MAX_TRAVELTIME },
1179 : { "minSamples", SUMO_ATTR_MIN_SAMPLES },
1180 : { "writeAttributes", SUMO_ATTR_WRITE_ATTRIBUTES },
1181 : { "edgesFile", SUMO_ATTR_EDGESFILE },
1182 : { "aggregate", SUMO_ATTR_AGGREGATE },
1183 : { "numEdges", SUMO_ATTR_NUMEDGES },
1184 :
1185 : { "lon", SUMO_ATTR_LON },
1186 : { "lat", SUMO_ATTR_LAT },
1187 : { "action", SUMO_ATTR_ACTION },
1188 : { "geo", SUMO_ATTR_GEO },
1189 : { "geoShape", SUMO_ATTR_GEOSHAPE },
1190 : { "k", SUMO_ATTR_K },
1191 : { "v", SUMO_ATTR_V },
1192 : { "ref", SUMO_ATTR_REF },
1193 : { "href", SUMO_ATTR_HREF },
1194 : { "zoom", SUMO_ATTR_ZOOM },
1195 : { "interpolated", SUMO_ATTR_INTERPOLATED },
1196 : { "threshold", SUMO_ATTR_THRESHOLD },
1197 :
1198 : { "netOffset", SUMO_ATTR_NET_OFFSET },
1199 : { "convBoundary", SUMO_ATTR_CONV_BOUNDARY },
1200 : { "origBoundary", SUMO_ATTR_ORIG_BOUNDARY },
1201 : { "projParameter", SUMO_ATTR_ORIG_PROJ },
1202 :
1203 : { "tauLast", SUMO_ATTR_CF_PWAGNER2009_TAULAST },
1204 : { "apProb", SUMO_ATTR_CF_PWAGNER2009_APPROB },
1205 : { "delta", SUMO_ATTR_CF_IDM_DELTA },
1206 : { "stepping", SUMO_ATTR_CF_IDM_STEPPING },
1207 : { "adaptFactor", SUMO_ATTR_CF_IDMM_ADAPT_FACTOR },
1208 : { "adaptTime", SUMO_ATTR_CF_IDMM_ADAPT_TIME },
1209 : { "phi", SUMO_ATTR_CF_KERNER_PHI },
1210 :
1211 : { "security", SUMO_ATTR_CF_WIEDEMANN_SECURITY },
1212 : { "estimation", SUMO_ATTR_CF_WIEDEMANN_ESTIMATION },
1213 : { "cc1", SUMO_ATTR_CF_W99_CC1 },
1214 : { "cc2", SUMO_ATTR_CF_W99_CC2 },
1215 : { "cc3", SUMO_ATTR_CF_W99_CC3 },
1216 : { "cc4", SUMO_ATTR_CF_W99_CC4 },
1217 : { "cc5", SUMO_ATTR_CF_W99_CC5 },
1218 : { "cc6", SUMO_ATTR_CF_W99_CC6 },
1219 : { "cc7", SUMO_ATTR_CF_W99_CC7 },
1220 : { "cc8", SUMO_ATTR_CF_W99_CC8 },
1221 : { "cc9", SUMO_ATTR_CF_W99_CC9 },
1222 :
1223 : { "ccDecel", SUMO_ATTR_CF_CC_CCDECEL },
1224 : { "constSpacing", SUMO_ATTR_CF_CC_CONSTSPACING },
1225 : { "kp", SUMO_ATTR_CF_CC_KP },
1226 : { "lambda", SUMO_ATTR_CF_CC_LAMBDA },
1227 : { "c1", SUMO_ATTR_CF_CC_C1 },
1228 : { "xi", SUMO_ATTR_CF_CC_XI },
1229 : { "omegaN", SUMO_ATTR_CF_CC_OMEGAN },
1230 : { "tauEngine", SUMO_ATTR_CF_CC_TAU },
1231 : { "lanesCount", SUMO_ATTR_CF_CC_LANES_COUNT },
1232 : { "ccAccel", SUMO_ATTR_CF_CC_CCACCEL },
1233 : { "ploegKp", SUMO_ATTR_CF_CC_PLOEG_KP },
1234 : { "ploegKd", SUMO_ATTR_CF_CC_PLOEG_KD },
1235 : { "ploegH", SUMO_ATTR_CF_CC_PLOEG_H },
1236 : { "flatbedKa", SUMO_ATTR_CF_CC_FLATBED_KA },
1237 : { "flatbedKv", SUMO_ATTR_CF_CC_FLATBED_KV },
1238 : { "flatbedKp", SUMO_ATTR_CF_CC_FLATBED_KP },
1239 : { "flatbedD", SUMO_ATTR_CF_CC_FLATBED_D },
1240 : { "flatbedH", SUMO_ATTR_CF_CC_FLATBED_H },
1241 :
1242 : { "generateWalks", SUMO_ATTR_GENERATE_WALKS },
1243 : { "actType", SUMO_ATTR_ACTTYPE },
1244 : { "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
1245 : { "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
1246 : { "rectangularLaneCut", SUMO_ATTR_RECTANGULAR_LANE_CUT },
1247 : { "walkingareas", SUMO_ATTR_WALKINGAREAS },
1248 : { "lefthand", SUMO_ATTR_LEFTHAND },
1249 : { "limitTurnSpeed", SUMO_ATTR_LIMIT_TURN_SPEED },
1250 : { "checkLaneFoesAll", SUMO_ATTR_CHECKLANEFOES_ALL },
1251 : { "checkLaneFoesRoundabout", SUMO_ATTR_CHECKLANEFOES_ROUNDABOUT },
1252 : { "tlsIgnoreInternalJunctionJam", SUMO_ATTR_TLS_IGNORE_INTERNAL_JUNCTION_JAM },
1253 : { "avoidOverlap", SUMO_ATTR_AVOID_OVERLAP },
1254 : { "junctionHigherSpeed", SUMO_ATTR_HIGHER_SPEED },
1255 : { "internalJunctionsVehicleWidth", SUMO_ATTR_INTERNAL_JUNCTIONS_VEHICLE_WIDTH },
1256 : { "junctionsMinimalShape", SUMO_ATTR_JUNCTIONS_MINIMAL_SHAPE },
1257 : { "junctionsEndpointShape", SUMO_ATTR_JUNCTIONS_ENDPOINT_SHAPE },
1258 :
1259 : { "actorConfig", SUMO_ATTR_ACTORCONFIG },
1260 : { "startTime", SUMO_ATTR_STARTTIME },
1261 : { "vehicleClass", SUMO_ATTR_VEHICLECLASS },
1262 : { "origin", SUMO_ATTR_ORIGIN },
1263 : { "destination", SUMO_ATTR_DESTINATION },
1264 : { "visible", SUMO_ATTR_VISIBLE },
1265 : { "reservable", SUMO_ATTR_RESERVABLE },
1266 : { "main", SUMO_ATTR_MAIN },
1267 : { "siding", SUMO_ATTR_SIDING },
1268 : { "minSaving", SUMO_ATTR_MINSAVING },
1269 : { "defer", SUMO_ATTR_DEFER },
1270 : { "limit", SUMO_ATTR_LIMIT },
1271 : { "active", SUMO_ATTR_ACTIVE },
1272 : { "arrivalTime", SUMO_ATTR_ARRIVALTIME },
1273 : { "arrivalTimeBraking", SUMO_ATTR_ARRIVALTIMEBRAKING },
1274 : { "arrivalSpeedBraking", SUMO_ATTR_ARRIVALSPEEDBRAKING },
1275 : { "optional", SUMO_ATTR_OPTIONAL },
1276 : { "vehicles", SUMO_ATTR_VEHICLES },
1277 :
1278 : #ifndef WIN32
1279 : { "commandPosix", SUMO_ATTR_COMMAND },
1280 : #else
1281 : { "commandWindows", SUMO_ATTR_COMMAND },
1282 : #endif
1283 :
1284 : // ActivityGen statistics file
1285 : { "inhabitants", AGEN_ATTR_INHABITANTS },
1286 : { "households", AGEN_ATTR_HOUSEHOLDS },
1287 : { "childrenAgeLimit", AGEN_ATTR_CHILDREN },
1288 : { "retirementAgeLimit", AGEN_ATTR_RETIREMENT },
1289 : { "carRate", AGEN_ATTR_CARS },
1290 : { "unemploymentRate", AGEN_ATTR_UNEMPLOYEMENT },
1291 : { "laborDemand", AGEN_ATTR_LABORDEMAND },
1292 : { "footDistanceLimit", AGEN_ATTR_MAX_FOOT_DIST },
1293 : { "incomingTraffic", AGEN_ATTR_IN_TRAFFIC },
1294 : { "incoming", AGEN_ATTR_INCOMING },
1295 : { "outgoingTraffic", AGEN_ATTR_OUT_TRAFFIC },
1296 : { "outgoing", AGEN_ATTR_OUTGOING },
1297 : { "population", AGEN_ATTR_POPULATION },
1298 : { "workPosition", AGEN_ATTR_OUT_WORKPOSITION },
1299 : { "hour", AGEN_ATTR_HOUR },
1300 : { "proportion", AGEN_ATTR_PROP },
1301 : { "capacity", AGEN_ATTR_CAPACITY },
1302 : { "opening", AGEN_ATTR_OPENING },
1303 : { "closing", AGEN_ATTR_CLOSING },
1304 : { "maxTripDuration", AGEN_ATTR_MAX_TRIP_DURATION },
1305 : { "rate", AGEN_ATTR_RATE },
1306 : { "beginAge", AGEN_ATTR_BEGINAGE },
1307 : { "endAge", AGEN_ATTR_ENDAGE },
1308 : { "peopleNbr", AGEN_ATTR_PEOPLENBR },
1309 : { "carPreference", AGEN_ATTR_CARPREF },
1310 : { "meanTimePerKmInCity", AGEN_ATTR_CITYSPEED },
1311 : { "freeTimeActivityRate", AGEN_ATTR_FREETIMERATE },
1312 : { "uniformRandomTraffic", AGEN_ATTR_UNI_RAND_TRAFFIC },
1313 : { "departureVariation", AGEN_ATTR_DEP_VARIATION },
1314 :
1315 : // SUMOConfig files
1316 : { "config-file", SUMO_ATTR_CONFIGFILE },
1317 : { "net-file", SUMO_ATTR_NETFILE },
1318 : { "additional-files", SUMO_ATTR_ADDITIONALFILES },
1319 : { "route-files", SUMO_ATTR_ROUTEFILES },
1320 : { "data-files", SUMO_ATTR_DATAFILES },
1321 : { "meandata-files", SUMO_ATTR_MEANDATAFILES },
1322 :
1323 : // Netedit attributes
1324 : { "selected", GNE_ATTR_SELECTED },
1325 : { "modificationStatusNotForPrinting", GNE_ATTR_MODIFICATION_STATUS },
1326 : { "shapeStart", GNE_ATTR_SHAPE_START },
1327 : { "shapeEnd", GNE_ATTR_SHAPE_END },
1328 : { "isBidi", GNE_ATTR_BIDIR },
1329 : { "close shape", GNE_ATTR_CLOSE_SHAPE },
1330 : { "parent", GNE_ATTR_PARENT },
1331 : { "dataSet", GNE_ATTR_DATASET },
1332 : { "parameters", GNE_ATTR_PARAMETERS },
1333 : { "flowParameter", GNE_ATTR_FLOWPARAMETERS },
1334 : { "defaultVTypeModified", GNE_ATTR_DEFAULT_VTYPE_MODIFIED },
1335 : { "defaultProbability", GNE_ATTR_DEFAULT_PROBABILITY },
1336 : { "centerView", GNE_ATTR_CENTER_AFTER_CREATION },
1337 : { "opposite", GNE_ATTR_OPPOSITE },
1338 : { "shiftLaneIndex", GNE_ATTR_SHIFTLANEINDEX },
1339 : { "stopOffset", GNE_ATTR_STOPOFFSET },
1340 : { "stopOException", GNE_ATTR_STOPOEXCEPTION },
1341 : { "poisson", GNE_ATTR_POISSON },
1342 : { "stopIndex", GNE_ATTR_STOPINDEX },
1343 : { "pathStopIndex", GNE_ATTR_PATHSTOPINDEX },
1344 : { "planGeometryStartPos", GNE_ATTR_PLAN_GEOMETRY_STARTPOS },
1345 : { "planGeometryEndPos", GNE_ATTR_PLAN_GEOMETRY_ENDPOS },
1346 : { "fromLaneID", GNE_ATTR_FROM_LANEID },
1347 : { "toLaneID", GNE_ATTR_TO_LANEID },
1348 : { "tazCentroid", GNE_ATTR_TAZ_CENTROID },
1349 : { "terminate", GNE_ATTR_FLOW_TERMINATE },
1350 : { "spacing", GNE_ATTR_FLOW_SPACING },
1351 : { "reference", GNE_ATTR_REFERENCE },
1352 : { "size", GNE_ATTR_SIZE },
1353 : { "forceSize", GNE_ATTR_FORCESIZE },
1354 : { "laneLength", GNE_ATTR_LANELENGTH },
1355 : { "saveFile", GNE_ATTR_SAVEFILE },
1356 : // mapped to additional elements on writing
1357 : { "fromBusStop", GNE_ATTR_FROM_BUSSTOP },
1358 : { "fromTrainStop", GNE_ATTR_FROM_TRAINSTOP },
1359 : { "fromContainerStop", GNE_ATTR_FROM_CONTAINERSTOP },
1360 : { "fromChargingStation", GNE_ATTR_FROM_CHARGINGSTATION },
1361 : { "fromParkingArea", GNE_ATTR_FROM_PARKINGAREA },
1362 : { "fromRoute", GNE_ATTR_FROM_ROUTE },
1363 : { "isRoundabout", GNE_ATTR_IS_ROUNDABOUT },
1364 : { "frontElement", GNE_ATTR_FRONTELEMENT },
1365 : { "edgesWithin", GNE_ATTR_EDGES_WITHIN },
1366 : { "noCommonAttributes", GNE_ATTR_NOCOMMON },
1367 : // 'all' is a reserved keyword when configuring attribute filters and must not occur as an attribute name
1368 :
1369 : { "carriageLength", SUMO_ATTR_CARRIAGE_LENGTH },
1370 : { "locomotiveLength", SUMO_ATTR_LOCOMOTIVE_LENGTH },
1371 : { "carriageGap", SUMO_ATTR_CARRIAGE_GAP },
1372 : { "carriageDoors", SUMO_ATTR_CARRIAGE_DOORS },
1373 :
1374 : { "targetLanes", SUMO_ATTR_TARGETLANE },
1375 : { "crossing", SUMO_ATTR_CROSSING },
1376 :
1377 : { "xmlns:xsi", SUMO_ATTR_XMLNS },
1378 : { "xsi:noNamespaceSchemaLocation", SUMO_ATTR_SCHEMA_LOCATION },
1379 :
1380 : // @name RNG state saving attributes
1381 : // @{
1382 : { "routeHandler", SUMO_ATTR_RNG_ROUTEHANDLER },
1383 : { "insertionControl", SUMO_ATTR_RNG_INSERTIONCONTROL },
1384 : { "device", SUMO_ATTR_RNG_DEVICE },
1385 : { "device.btreceiver", SUMO_ATTR_RNG_DEVICE_BT },
1386 : { "device.toc", SUMO_ATTR_RNG_DEVICE_TOC },
1387 : { "driverState", SUMO_ATTR_RNG_DRIVERSTATE },
1388 : // @}
1389 : //
1390 : // @name Taxi state saving attributes
1391 : // @{
1392 : { "customers", SUMO_ATTR_CUSTOMERS },
1393 : { "reservations", SUMO_ATTR_RESERVATIONS },
1394 : // @}
1395 :
1396 : // @name further state saving attributes
1397 : // @{
1398 : { "bikeSpeed", SUMO_ATTR_BIKESPEED },
1399 : { "pastSpeed", SUMO_ATTR_PASTSPEED },
1400 : { "pastBikeSpeed", SUMO_ATTR_PASTBIKESPEED },
1401 : // @}
1402 :
1403 : //@name meso edge type attributes
1404 : // @{
1405 : { "tauff", SUMO_ATTR_MESO_TAUFF },
1406 : { "taufj", SUMO_ATTR_MESO_TAUFJ },
1407 : { "taujf", SUMO_ATTR_MESO_TAUJF },
1408 : { "taujj", SUMO_ATTR_MESO_TAUJJ },
1409 : { "junctionControl", SUMO_ATTR_MESO_JUNCTION_CONTROL },
1410 : { "tlsPenalty", SUMO_ATTR_MESO_TLS_PENALTY },
1411 : { "tlsFlowPenalty", SUMO_ATTR_MESO_TLS_FLOW_PENALTY },
1412 : { "minorPenalty", SUMO_ATTR_MESO_MINOR_PENALTY },
1413 : { "overtaking", SUMO_ATTR_MESO_OVERTAKING },
1414 : { "edgeLength", SUMO_ATTR_MESO_EDGELENGHT },
1415 : // @}
1416 :
1417 : // Other
1418 : { "", SUMO_ATTR_NOTHING } //< must be the last one
1419 : };
1420 :
1421 :
1422 : const std::string SUMO_PARAM_ORIGID("origId");
1423 : const std::string SUMO_PARAM_REMOVED_NODES("removedNodeIds");
1424 :
1425 :
1426 : StringBijection<SumoXMLNodeType>::Entry SUMOXMLDefinitions::sumoNodeTypeValues[] = {
1427 : {"traffic_light", SumoXMLNodeType::TRAFFIC_LIGHT},
1428 : {"traffic_light_unregulated", SumoXMLNodeType::TRAFFIC_LIGHT_NOJUNCTION},
1429 : {"traffic_light_right_on_red", SumoXMLNodeType::TRAFFIC_LIGHT_RIGHT_ON_RED},
1430 : {"rail_signal", SumoXMLNodeType::RAIL_SIGNAL},
1431 : {"rail_crossing", SumoXMLNodeType::RAIL_CROSSING},
1432 : {"priority", SumoXMLNodeType::PRIORITY},
1433 : {"priority_stop", SumoXMLNodeType::PRIORITY_STOP},
1434 : {"right_before_left", SumoXMLNodeType::RIGHT_BEFORE_LEFT},
1435 : {"left_before_right", SumoXMLNodeType::LEFT_BEFORE_RIGHT},
1436 : {"allway_stop", SumoXMLNodeType::ALLWAY_STOP},
1437 : {"zipper", SumoXMLNodeType::ZIPPER},
1438 : {"district", SumoXMLNodeType::DISTRICT},
1439 : {"unregulated", SumoXMLNodeType::NOJUNCTION},
1440 : {"internal", SumoXMLNodeType::INTERNAL},
1441 : {"dead_end", SumoXMLNodeType::DEAD_END},
1442 : {"DEAD_END", SumoXMLNodeType::DEAD_END_DEPRECATED},
1443 : {"unknown", SumoXMLNodeType::UNKNOWN} //< must be the last one
1444 : };
1445 :
1446 :
1447 : StringBijection<SumoXMLEdgeFunc>::Entry SUMOXMLDefinitions::sumoEdgeFuncValues[] = {
1448 : {"unknown", SumoXMLEdgeFunc::UNKNOWN},
1449 : {"normal", SumoXMLEdgeFunc::NORMAL},
1450 : {"connector", SumoXMLEdgeFunc::CONNECTOR},
1451 : {"crossing", SumoXMLEdgeFunc::CROSSING},
1452 : {"walkingarea", SumoXMLEdgeFunc::WALKINGAREA},
1453 : {"internal", SumoXMLEdgeFunc::INTERNAL} //< must be the last one
1454 : };
1455 :
1456 :
1457 : StringBijection<LaneSpreadFunction>::Entry SUMOXMLDefinitions::laneSpreadFunctionValues[] = {
1458 : {"right", LaneSpreadFunction::RIGHT }, // default: geometry is left edge border, lanes flare to the right
1459 : {"roadCenter", LaneSpreadFunction::ROADCENTER }, // geometry is center of the bidirectional road
1460 : {"center", LaneSpreadFunction::CENTER }, // geometry is center of the edge (must be the last one)
1461 : {"unknown", LaneSpreadFunction::SPREAD_UNKNOWN } // geometry is not defined in typemap (must be the last one)
1462 : };
1463 :
1464 : StringBijection<ParkingType>::Entry SUMOXMLDefinitions::parkingTypeValues[] = {
1465 : {"0", ParkingType::ONROAD }, // default: park on the street
1466 : {"1", ParkingType::OFFROAD }, // parking off the street
1467 : {"opportunistic", ParkingType::OPPORTUNISTIC } // park off the street if there is an opportunity for it
1468 : };
1469 :
1470 : StringBijection<ChargeType>::Entry SUMOXMLDefinitions::chargeTypeValues[] = {
1471 : {"normal", ChargeType::NORMAL }, // default: either connected with a wire or charged by induction
1472 : {"battery-exchange", ChargeType::BATTERY_ECHANGE}, // battery echange
1473 : {"fuel", ChargeType::FUEL } // use fuel for charging
1474 : };
1475 :
1476 : StringBijection<RightOfWay>::Entry SUMOXMLDefinitions::rightOfWayValuesInitializer[] = {
1477 : {"edgePriority", RightOfWay::EDGEPRIORITY }, // use only edge priority values
1478 : {"mixedPriority", RightOfWay::MIXEDPRIORITY }, // use the default behavior but encode this explicitly (only needed for overriding the NEMA fallback behavior)
1479 : {"allwayStop", RightOfWay::ALLWAYSTOP }, // only used for setting the fall-back behavior of TLS-off
1480 : {"default", RightOfWay::DEFAULT } // default (must be the last one)
1481 : };
1482 :
1483 : StringBijection<FringeType>::Entry SUMOXMLDefinitions::fringeTypeValuesInitializer[] = {
1484 : {"outer", FringeType::OUTER },
1485 : {"inner", FringeType::INNER },
1486 : {"default", FringeType::DEFAULT } // default (must be the last one)
1487 : };
1488 :
1489 : StringBijection<RoundaboutType>::Entry SUMOXMLDefinitions::roundaboutTypeValuesInitializer[] = {
1490 : {"1", RoundaboutType::YES },
1491 : {"0", RoundaboutType::NO },
1492 : {"default", RoundaboutType::DEFAULT } // default (must be the last one)
1493 : };
1494 :
1495 : StringBijection<PersonMode>::Entry SUMOXMLDefinitions::personModeValuesInitializer[] = {
1496 : {"none", PersonMode::NONE},
1497 : {"walkForward", PersonMode::WALK_FORWARD},
1498 : {"walkBackward", PersonMode::WALK_BACKWARD},
1499 : {"walk", PersonMode::WALK},
1500 : {"bicycle", PersonMode::BICYCLE },
1501 : {"car", PersonMode::CAR },
1502 : {"taxi", PersonMode::TAXI },
1503 : {"public", PersonMode::PUBLIC} // (must be the last one)
1504 : };
1505 :
1506 : StringBijection<LinkState>::Entry SUMOXMLDefinitions::linkStateValues[] = {
1507 : { "G", LINKSTATE_TL_GREEN_MAJOR },
1508 : { "g", LINKSTATE_TL_GREEN_MINOR },
1509 : { "r", LINKSTATE_TL_RED },
1510 : { "u", LINKSTATE_TL_REDYELLOW },
1511 : { "Y", LINKSTATE_TL_YELLOW_MAJOR },
1512 : { "y", LINKSTATE_TL_YELLOW_MINOR },
1513 : { "o", LINKSTATE_TL_OFF_BLINKING },
1514 : { "O", LINKSTATE_TL_OFF_NOSIGNAL },
1515 : { "M", LINKSTATE_MAJOR },
1516 : { "m", LINKSTATE_MINOR },
1517 : { "=", LINKSTATE_EQUAL },
1518 : { "s", LINKSTATE_STOP },
1519 : { "w", LINKSTATE_ALLWAY_STOP },
1520 : { "Z", LINKSTATE_ZIPPER },
1521 : { "-", LINKSTATE_DEADEND } //< must be the last one
1522 : };
1523 :
1524 : const char SUMOXMLDefinitions::AllowedTLS_linkStatesInitializer[] = {
1525 : LINKSTATE_TL_GREEN_MAJOR,
1526 : LINKSTATE_TL_GREEN_MINOR,
1527 : LINKSTATE_STOP, // used for SumoXMLNodeType::TRAFFIC_LIGHT_RIGHT_ON_RED
1528 : LINKSTATE_TL_RED,
1529 : LINKSTATE_TL_REDYELLOW,
1530 : LINKSTATE_TL_YELLOW_MAJOR,
1531 : LINKSTATE_TL_YELLOW_MINOR,
1532 : LINKSTATE_TL_OFF_BLINKING,
1533 : LINKSTATE_TL_OFF_NOSIGNAL
1534 : };
1535 : const std::string SUMOXMLDefinitions::ALLOWED_TLS_LINKSTATES(AllowedTLS_linkStatesInitializer, 9);
1536 :
1537 : StringBijection<LinkDirection>::Entry SUMOXMLDefinitions::linkDirectionValues[] = {
1538 : { "s", LinkDirection::STRAIGHT },
1539 : { "t", LinkDirection::TURN },
1540 : { "T", LinkDirection::TURN_LEFTHAND },
1541 : { "l", LinkDirection::LEFT },
1542 : { "r", LinkDirection::RIGHT },
1543 : { "L", LinkDirection::PARTLEFT },
1544 : { "R", LinkDirection::PARTRIGHT },
1545 : { "invalid", LinkDirection::NODIR } //< must be the last one
1546 : };
1547 :
1548 :
1549 : StringBijection<TrafficLightType>::Entry SUMOXMLDefinitions::trafficLightTypesValues[] = {
1550 : { "static", TrafficLightType::STATIC },
1551 : { "railSignal", TrafficLightType::RAIL_SIGNAL },
1552 : { "railCrossing", TrafficLightType::RAIL_CROSSING },
1553 : { "actuated", TrafficLightType::ACTUATED },
1554 : { "NEMA", TrafficLightType::NEMA },
1555 : { "delay_based", TrafficLightType::DELAYBASED },
1556 : { "sotl_phase", TrafficLightType::SOTL_PHASE },
1557 : { "sotl_platoon", TrafficLightType::SOTL_PLATOON },
1558 : { "sotl_request", TrafficLightType::SOTL_REQUEST },
1559 : { "sotl_wave", TrafficLightType::SOTL_WAVE },
1560 : { "sotl_marching", TrafficLightType::SOTL_MARCHING },
1561 : { "swarm", TrafficLightType::SWARM_BASED },
1562 : { "deterministic", TrafficLightType::HILVL_DETERMINISTIC },
1563 : { "off", TrafficLightType::OFF },
1564 : { "<invalid>", TrafficLightType::INVALID } //< must be the last one
1565 : };
1566 :
1567 :
1568 : StringBijection<TrafficLightLayout>::Entry SUMOXMLDefinitions::trafficLightLayoutValues[] = {
1569 : { "opposites", TrafficLightLayout::OPPOSITES },
1570 : { "incoming", TrafficLightLayout::INCOMING },
1571 : { "alternateOneWay", TrafficLightLayout::ALTERNATE_ONEWAY },
1572 : { "default", TrafficLightLayout::DEFAULT } //< must be the last one
1573 : };
1574 :
1575 : StringBijection<InsertionCheck>::Entry SUMOXMLDefinitions::insertionCheckValues[] = {
1576 : { "none", InsertionCheck::NONE },
1577 : { "collision", InsertionCheck::COLLISION },
1578 : { "leaderGap", InsertionCheck::LEADER_GAP },
1579 : { "followerGap", InsertionCheck::FOLLOWER_GAP },
1580 : { "junction", InsertionCheck::JUNCTION },
1581 : { "stop", InsertionCheck::STOP },
1582 : { "arrivalSpeed", InsertionCheck::ARRIVAL_SPEED },
1583 : { "oncomingTrain", InsertionCheck::ONCOMING_TRAIN },
1584 : { "speedLimit", InsertionCheck::SPEED_LIMIT },
1585 : { "pedestrian", InsertionCheck::PEDESTRIAN },
1586 : { "bidi", InsertionCheck::BIDI },
1587 : { "laneChange", InsertionCheck::LANECHANGE },
1588 : { "all", InsertionCheck::ALL } //< must be the last one
1589 : };
1590 :
1591 : StringBijection<LaneChangeModel>::Entry SUMOXMLDefinitions::laneChangeModelValues[] = {
1592 : { "DK2008", LaneChangeModel::DK2008 },
1593 : { "LC2013", LaneChangeModel::LC2013 },
1594 : { "LC2013_CC", LaneChangeModel::LC2013_CC },
1595 : { "SL2015", LaneChangeModel::SL2015 },
1596 : { "default", LaneChangeModel::DEFAULT } //< must be the last one
1597 : };
1598 :
1599 : StringBijection<SumoXMLTag>::Entry SUMOXMLDefinitions::carFollowModelValues[] = {
1600 : { "IDM", SUMO_TAG_CF_IDM },
1601 : { "IDMM", SUMO_TAG_CF_IDMM },
1602 : { "Krauss", SUMO_TAG_CF_KRAUSS },
1603 : { "KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
1604 : { "KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
1605 : { "KraussX", SUMO_TAG_CF_KRAUSSX }, // experimental extensions to the Krauss model
1606 : { "EIDM", SUMO_TAG_CF_EIDM },
1607 : { "SmartSK", SUMO_TAG_CF_SMART_SK },
1608 : { "Daniel1", SUMO_TAG_CF_DANIEL1 },
1609 : { "PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
1610 : { "BKerner", SUMO_TAG_CF_BKERNER },
1611 : { "Rail", SUMO_TAG_CF_RAIL },
1612 : { "CC", SUMO_TAG_CF_CC },
1613 : { "ACC", SUMO_TAG_CF_ACC },
1614 : { "CACC", SUMO_TAG_CF_CACC },
1615 : { "W99", SUMO_TAG_CF_W99 },
1616 : { "Wiedemann", SUMO_TAG_CF_WIEDEMANN } //< must be the last one
1617 : };
1618 :
1619 : StringBijection<LaneChangeAction>::Entry SUMOXMLDefinitions::laneChangeActionValues[] = {
1620 : { "stay", LCA_STAY },
1621 : { "left", LCA_LEFT },
1622 : { "right", LCA_RIGHT },
1623 : { "strategic", LCA_STRATEGIC },
1624 : { "cooperative", LCA_COOPERATIVE },
1625 : { "speedGain", LCA_SPEEDGAIN },
1626 : { "keepRight", LCA_KEEPRIGHT },
1627 : { "sublane", LCA_SUBLANE },
1628 : { "traci", LCA_TRACI },
1629 : { "urgent", LCA_URGENT },
1630 : { "overlapping", LCA_OVERLAPPING },
1631 : { "blocked", LCA_BLOCKED },
1632 : { "amBL", LCA_AMBLOCKINGLEADER },
1633 : { "amBF", LCA_AMBLOCKINGFOLLOWER },
1634 : { "amBB", LCA_AMBACKBLOCKER },
1635 : { "amBBS", LCA_AMBACKBLOCKER_STANDING },
1636 : { "MR", LCA_MRIGHT },
1637 : { "ML", LCA_MLEFT },
1638 : { "unknown", LCA_UNKNOWN } //< must be the last one
1639 : };
1640 :
1641 : StringBijection<TrainType>::Entry SUMOXMLDefinitions::trainTypeValues[] = {
1642 : { "custom", TrainType::CUSTOM },
1643 : { "NGT400", TrainType::NGT400 },
1644 : { "NGT400_16", TrainType::NGT400_16 },
1645 : { "RB425", TrainType::RB425 },
1646 : { "RB628", TrainType::RB628 },
1647 : { "ICE1", TrainType::ICE1 },
1648 : { "REDosto7", TrainType::REDOSTO7 },
1649 : { "Freight", TrainType::FREIGHT },
1650 : { "ICE3", TrainType::ICE3 },
1651 : { "MireoPlusB", TrainType::MIREOPLUSB },
1652 : { "MireoPlusH", TrainType::MIREOPLUSH }
1653 : };
1654 :
1655 : StringBijection<POIIcon>::Entry SUMOXMLDefinitions::POIIconValues[] = {
1656 : {"pin", POIIcon::PIN},
1657 : {"tree", POIIcon::NATURE},
1658 : {"hotel", POIIcon::HOTEL},
1659 : {"fuel", POIIcon::FUEL},
1660 : {"charging_station", POIIcon::CHARGING_STATION},
1661 : {"", POIIcon::NONE} //< must be the last one
1662 : };
1663 :
1664 : StringBijection<ExcludeEmpty>::Entry SUMOXMLDefinitions::excludeEmptyValues[] = {
1665 : {"true", ExcludeEmpty::TRUES},
1666 : {"false", ExcludeEmpty::FALSES},
1667 : {"defaults", ExcludeEmpty::DEFAULTS} //< must be the last one
1668 : };
1669 :
1670 : StringBijection<ReferencePosition>::Entry SUMOXMLDefinitions::referencePositionValues[] = {
1671 : {"left", ReferencePosition::LEFT},
1672 : {"right", ReferencePosition::RIGHT},
1673 : {"center", ReferencePosition::CENTER} //< must be the last one
1674 : };
1675 :
1676 : StringBijection<MeanDataType>::Entry SUMOXMLDefinitions::meanDataTypeValues[] = {
1677 : {"traffic", MeanDataType::TRAFFIC},
1678 : {"emissions", MeanDataType::EMISSIONS},
1679 : {"harmonoise", MeanDataType::HARMONOISE},
1680 : {"amitran", MeanDataType::AMITRAN},
1681 : {"", MeanDataType::DEFAULT} //< must be the last one
1682 : };
1683 :
1684 : StringBijection<XMLFileExtension>::Entry SUMOXMLDefinitions::XMLFileExtensionValues[] = {
1685 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), XMLFileExtension::XML},
1686 : {TL("All files") + std::string(" (*)"), XMLFileExtension::ALL} //< must be the last one
1687 : };
1688 :
1689 : StringBijection<TXTFileExtension>::Entry SUMOXMLDefinitions::TXTFileExtensionValues[] = {
1690 : {TL("Plain text files") + std::string(" (*.txt)"), TXTFileExtension::TXT},
1691 : {TL("All files") + std::string(" (*)"), TXTFileExtension::ALL} //< must be the last one
1692 : };
1693 :
1694 : StringBijection<CSVFileExtension>::Entry SUMOXMLDefinitions::CSVFileExtensionValues[] = {
1695 : {TL("CSV files") + std::string(" (*.csv)"), CSVFileExtension::CSV},
1696 : {TL("All files") + std::string(" (*)"), CSVFileExtension::ALL} //< must be the last one
1697 : };
1698 :
1699 : StringBijection<OSGFileExtension>::Entry SUMOXMLDefinitions::OSGFileExtensionValues[] = {
1700 : {TL("Open scene graph files") + std::string(" (*.osg)"), OSGFileExtension::OSG},
1701 : {TL("All files") + std::string(" (*)"), OSGFileExtension::ALL} //< must be the last one
1702 : };
1703 :
1704 : StringBijection<ImageFileExtension>::Entry SUMOXMLDefinitions::imageFileExtensionValues[] = {
1705 : {TL("All Image Files") + std::string(" (*.gif,*.bmp,*.xpm,*.pcx,*.ico,*.rgb,*.xbm,*.tga,*.png,*.jpg,*.jpeg,*.tif,*.tiff,*.ps,*.eps,*.pdf,*.svg,*.tex,*.pgf)"), ImageFileExtension::IMG},
1706 : {TL("GIF Image") + std::string(" (*.gif)"), ImageFileExtension::GIF},
1707 : {TL("BMP Image") + std::string(" (*.bmp)"), ImageFileExtension::BMP},
1708 : {TL("XPM Image") + std::string(" (*.xpm)"), ImageFileExtension::XPM},
1709 : {TL("PCX Image") + std::string(" (*.pcx)"), ImageFileExtension::PCX},
1710 : {TL("ICO Image") + std::string(" (*.ico)"), ImageFileExtension::ICO},
1711 : {TL("RGB Image") + std::string(" (*.rgb)"), ImageFileExtension::RGB},
1712 : {TL("XBM Image") + std::string(" (*.xbm)"), ImageFileExtension::XBM},
1713 : {TL("TARGA Image") + std::string(" (*.tga)"), ImageFileExtension::TGA},
1714 : {TL("PNG Image") + std::string(" (*.png)"), ImageFileExtension::PNG},
1715 : {TL("JPEG Image") + std::string(" (*.jpg,*.jpeg)"), ImageFileExtension::JPG},
1716 : {TL("TIFF Image") + std::string(" (*.tif,*.tiff)"), ImageFileExtension::TIF},
1717 : {TL("Postscript") + std::string(" (*.ps)"), ImageFileExtension::PS},
1718 : {TL("Encapsulated Postscript") + std::string(" (*.eps)"), ImageFileExtension::EPS},
1719 : {TL("Portable Document Format") + std::string(" (*.pdf)"), ImageFileExtension::PDF},
1720 : {TL("Scalable Vector Graphics") + std::string(" (*.svg)"), ImageFileExtension::SVG},
1721 : {TL("LATEX text strings") + std::string(" (*.tex)"), ImageFileExtension::TEX},
1722 : {TL("Portable LaTeX Graphics") + std::string(" (*.pgf)"), ImageFileExtension::PGF},
1723 : {TL("All Files") + std::string(" (*)"), ImageFileExtension::ALL} //< must be the last one
1724 : };
1725 :
1726 : StringBijection<ImageVideoFileExtension>::Entry SUMOXMLDefinitions::imageVideoFileExtensionValues[] = {
1727 : {TL("All Image and Video Files") + std::string(" (*.gif,*.bmp,*.xpm,*.pcx,*.ico,*.rgb,*.xbm,*.tga,*.png,*.jpg,*.jpeg,*.tif,*.tiff,*.ps,*.eps,*.pdf,*.svg,*.tex,*.pgf,*.h264,*.hevc,*.mp4)"), ImageVideoFileExtension::IMG},
1728 : {TL("All Video Files") + std::string(" (*.h264,*.hevc,*.mp4)"), ImageVideoFileExtension::VIDEO},
1729 : {TL("G264 Video") + std::string(" (*.h264)"), ImageVideoFileExtension::H264},
1730 : {TL("HEVC Video") + std::string(" (*.hevc)"), ImageVideoFileExtension::HEVC},
1731 : {TL("MP4 Video") + std::string(" (*.mp4)"), ImageVideoFileExtension::MP4},
1732 : {TL("GIF Image") + std::string(" (*.gif)"), ImageVideoFileExtension::GIF},
1733 : {TL("BMP Image") + std::string(" (*.bmp)"), ImageVideoFileExtension::BMP},
1734 : {TL("XPM Image") + std::string(" (*.xpm)"), ImageVideoFileExtension::XPM},
1735 : {TL("PCX Image") + std::string(" (*.pcx)"), ImageVideoFileExtension::PCX},
1736 : {TL("ICO Image") + std::string("") + std::string(" (*.ico)"), ImageVideoFileExtension::ICO},
1737 : {TL("RGB Image") + std::string(" (*.rgb)"), ImageVideoFileExtension::RGB},
1738 : {TL("XBM Image") + std::string(" (*.xbm)"), ImageVideoFileExtension::XBM},
1739 : {TL("TARGA Image") + std::string(" (*.tga)"), ImageVideoFileExtension::TGA},
1740 : {TL("PNG Image") + std::string(" (*.png)"), ImageVideoFileExtension::PNG},
1741 : {TL("JPEG Image") + std::string(" (*.jpg,*.jpeg)"), ImageVideoFileExtension::JPG},
1742 : {TL("TIFF Image") + std::string(" (*.tif,*.tiff)"), ImageVideoFileExtension::TIF},
1743 : {TL("Postscript") + std::string(" (*.ps)"), ImageVideoFileExtension::PS},
1744 : {TL("Encapsulated Postscript") + std::string(" (*.eps)"), ImageVideoFileExtension::EPS},
1745 : {TL("Portable Document Format") + std::string(" (*.pdf)"), ImageVideoFileExtension::PDF},
1746 : {TL("Scalable Vector Graphics") + std::string(" (*.svg)"), ImageVideoFileExtension::SVG},
1747 : {TL("LATEX text strings") + std::string(" (*.tex)"), ImageVideoFileExtension::TEX},
1748 : {TL("Portable") + std::string(" LaTeX Graphics (*.pgf)"), ImageVideoFileExtension::PGF},
1749 : {TL("All Files") + std::string(" (*)"), ImageVideoFileExtension::ALL} //< must be the last one
1750 : };
1751 :
1752 : StringBijection<OutputFileExtension>::Entry SUMOXMLDefinitions::outputFileExtensionValues[] = {
1753 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), OutputFileExtension::XML},
1754 : {TL("Plain text") + std::string(" files (*.txt)"), OutputFileExtension::TXT},
1755 : {TL("All files") + std::string(" (*)"), OutputFileExtension::ALL} //< must be the last one
1756 : };
1757 :
1758 : StringBijection<ViewSettingsFileExtension>::Entry SUMOXMLDefinitions::viewSettingsFileExtensionValues[] = {
1759 : {TL("View settings files") + std::string(" (*.xml,*.xml.gz)"), ViewSettingsFileExtension::XML},
1760 : {TL("All files") + std::string(" (*)"), ViewSettingsFileExtension::ALL} //< must be the last one
1761 : };
1762 :
1763 : StringBijection<StateFileExtension>::Entry SUMOXMLDefinitions::stateFileExtensionValues[] = {
1764 : {TL("State GZipped XML files") + std::string(" (*.xml.gz)"), StateFileExtension::XML_GZ},
1765 : {TL("XML files") + std::string(" (*.xml)"), StateFileExtension::XML},
1766 : {TL("All files") + std::string(" (*)"), StateFileExtension::ALL} //< must be the last one
1767 : };
1768 :
1769 : StringBijection<SumoConfigFileExtension>::Entry SUMOXMLDefinitions::sumoConfigFileExtensionValues[] = {
1770 : {TL("Sumo config") + std::string(" files (*.sumocfg)"), SumoConfigFileExtension::SUMOCONF},
1771 : {TL("XML files") + std::string(" (*.xml)"), SumoConfigFileExtension::XML},
1772 : {TL("All files") + std::string(" (*)"), SumoConfigFileExtension::ALL} //< must be the last one
1773 : };
1774 :
1775 : StringBijection<NeteditConfigFileExtension>::Entry SUMOXMLDefinitions::neteditConfigFileExtensionValues[] = {
1776 : {TL("Netedit config files") + std::string(" (*.netecfg)"), NeteditConfigFileExtension::NETECFG},
1777 : {TL("XML files") + std::string(" (*.xml)"), NeteditConfigFileExtension::XML},
1778 : {TL("All files") + std::string(" (*)"), NeteditConfigFileExtension::ALL} //< must be the last one
1779 : };
1780 :
1781 : StringBijection<NetconvertConfigFileExtension>::Entry SUMOXMLDefinitions::netconvertConfigFileExtensionValues[] = {
1782 : {TL("Netconvert config files") + std::string(" (*.netccfg)"), NetconvertConfigFileExtension::NETCCFG},
1783 : {TL("XML files") + std::string(" (*.xml)"), NetconvertConfigFileExtension::XML},
1784 : {TL("All files") + std::string(" (*)"), NetconvertConfigFileExtension::ALL} //< must be the last one
1785 : };
1786 :
1787 : StringBijection<NetconvertPlainFileExtension>::Entry SUMOXMLDefinitions::netconvertPlainFileExtensionValues[] = {
1788 : {TL("Netconvert plain-xml files") + std::string(" (*.edg.xml)"), NetconvertPlainFileExtension::EDGXML},
1789 : {TL("XML files") + std::string(" (*.xml)"), NetconvertPlainFileExtension::XML},
1790 : {TL("All files") + std::string(" (*)"), NetconvertPlainFileExtension::ALL} //< must be the last one
1791 : };
1792 :
1793 : StringBijection<OSMFileExtension>::Entry SUMOXMLDefinitions::osmFileExtensionValues[] = {
1794 : {TL("OSM network files") + std::string(" (*.osm,*.osm.gz)"), OSMFileExtension::OSM},
1795 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), OSMFileExtension::XML},
1796 : {TL("All files") + std::string(" (*)"), OSMFileExtension::ALL} //< must be the last one
1797 : };
1798 :
1799 : StringBijection<NetFileExtension>::Entry SUMOXMLDefinitions::netFileExtensionValues[] = {
1800 : {TL("SUMO network files") + std::string(" (*.net.xml,*.net.xml.gz)"), NetFileExtension::NET_XML},
1801 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), NetFileExtension::XML},
1802 : {TL("All files") + std::string(" (*)"), NetFileExtension::ALL} //< must be the last one
1803 : };
1804 :
1805 : StringBijection<TLSFileExtension>::Entry SUMOXMLDefinitions::TLSFileExtensionValues[] = {
1806 : {TL("TLS files") + std::string(" (*.tll.xml,*.tll.xml.gz)"), TLSFileExtension::TTL_XML},
1807 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), TLSFileExtension::XML},
1808 : {TL("All files") + std::string(" (*)"), TLSFileExtension::ALL} //< must be the last one
1809 : };
1810 :
1811 : StringBijection<JunctionFileExtension>::Entry SUMOXMLDefinitions::junctionFileExtensionValues[] = {
1812 : {TL("Junction files") + std::string(" (*.nod.xml,*.nod.xml.gz)"), JunctionFileExtension::NOD_XML},
1813 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), JunctionFileExtension::XML},
1814 : {TL("All files") + std::string(" (*)"), JunctionFileExtension::ALL} //< must be the last one
1815 : };
1816 :
1817 : StringBijection<EdgeTypeFileExtension>::Entry SUMOXMLDefinitions::edgeTypeFileExtensionValues[] = {
1818 : {TL("Edge type files") + std::string(" (*.typ.xml,*.typ.xml.gz)"), EdgeTypeFileExtension::TYP_XML},
1819 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), EdgeTypeFileExtension::XML},
1820 : {TL("All files") + std::string(" (*)"), EdgeTypeFileExtension::ALL} //< must be the last one
1821 : };
1822 :
1823 : StringBijection<AdditionalFileExtension>::Entry SUMOXMLDefinitions::additionalFileExtensionValues[] = {
1824 : {TL("Additional files") + std::string(" (*.add.xml,*.add.xml.gz)"), AdditionalFileExtension::ADD_XML},
1825 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), AdditionalFileExtension::XML},
1826 : {TL("All files") + std::string(" (*)"), AdditionalFileExtension::ALL} //< must be the last one
1827 : };
1828 :
1829 : StringBijection<ShapesFileExtension>::Entry SUMOXMLDefinitions::shapesFileExtensionValues[] = {
1830 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), ShapesFileExtension::XML},
1831 : {TL("All files") + std::string(" (*)"), ShapesFileExtension::ALL} //< must be the last one
1832 : };
1833 :
1834 : StringBijection<RouteFileExtension>::Entry SUMOXMLDefinitions::routeFileExtensionsValues[] = {
1835 : {TL("Route files") + std::string(" (*.rou.xml,*.rou.xml.gz)"), RouteFileExtension::ROU_XML},
1836 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), RouteFileExtension::XML},
1837 : {TL("All files") + std::string(" (*)"), RouteFileExtension::ALL} //< must be the last one
1838 : };
1839 :
1840 : StringBijection<EdgeDataFileExtension>::Entry SUMOXMLDefinitions::edgeDataFileExtensionsValues[] = {
1841 : {TL("Edge data files") + std::string(" (*.xml,*.xml.gz)"), EdgeDataFileExtension::XML},
1842 : {TL("All files") + std::string(" (*)"), EdgeDataFileExtension::ALL} //< must be the last one
1843 : };
1844 :
1845 : StringBijection<MeanDataFileExtension>::Entry SUMOXMLDefinitions::meanDataFileExtensionsValues[] = {
1846 : {TL("Mean data files") + std::string(" (*.add.xml,*.add.xml.gz)"), MeanDataFileExtension::ADD},
1847 : {TL("XML files") + std::string(" (*.xml,*.xml.gz)"), MeanDataFileExtension::XML},
1848 : {TL("All files") + std::string(" (*)"), MeanDataFileExtension::ALL} //< must be the last one
1849 : };
1850 :
1851 : SequentialStringBijection SUMOXMLDefinitions::Tags(
1852 : SUMOXMLDefinitions::tags, SUMO_TAG_NOTHING);
1853 :
1854 : SequentialStringBijection SUMOXMLDefinitions::Attrs(
1855 : SUMOXMLDefinitions::attrs, SUMO_ATTR_NOTHING);
1856 :
1857 : StringBijection<SumoXMLNodeType> SUMOXMLDefinitions::NodeTypes(
1858 : SUMOXMLDefinitions::sumoNodeTypeValues, SumoXMLNodeType::UNKNOWN);
1859 :
1860 : StringBijection<SumoXMLEdgeFunc> SUMOXMLDefinitions::EdgeFunctions(
1861 : SUMOXMLDefinitions::sumoEdgeFuncValues, SumoXMLEdgeFunc::INTERNAL);
1862 :
1863 : StringBijection<LaneSpreadFunction> SUMOXMLDefinitions::LaneSpreadFunctions(
1864 : SUMOXMLDefinitions::laneSpreadFunctionValues, LaneSpreadFunction::SPREAD_UNKNOWN);
1865 :
1866 : StringBijection<ParkingType> SUMOXMLDefinitions::ParkingTypes(
1867 : SUMOXMLDefinitions::parkingTypeValues, ParkingType::OPPORTUNISTIC);
1868 :
1869 : StringBijection<ChargeType> SUMOXMLDefinitions::ChargeTypes(
1870 : SUMOXMLDefinitions::chargeTypeValues, ChargeType::FUEL);
1871 :
1872 : StringBijection<RightOfWay> SUMOXMLDefinitions::RightOfWayValues(
1873 : SUMOXMLDefinitions::rightOfWayValuesInitializer, RightOfWay::DEFAULT);
1874 :
1875 : StringBijection<FringeType> SUMOXMLDefinitions::FringeTypeValues(
1876 : SUMOXMLDefinitions::fringeTypeValuesInitializer, FringeType::DEFAULT);
1877 :
1878 : StringBijection<RoundaboutType> SUMOXMLDefinitions::RoundaboutTypeValues(
1879 : SUMOXMLDefinitions::roundaboutTypeValuesInitializer, RoundaboutType::DEFAULT);
1880 :
1881 : StringBijection<PersonMode> SUMOXMLDefinitions::PersonModeValues(
1882 : SUMOXMLDefinitions::personModeValuesInitializer, PersonMode::PUBLIC);
1883 :
1884 : StringBijection<LinkState> SUMOXMLDefinitions::LinkStates(
1885 : SUMOXMLDefinitions::linkStateValues, LINKSTATE_DEADEND);
1886 :
1887 : StringBijection<LinkDirection> SUMOXMLDefinitions::LinkDirections(
1888 : SUMOXMLDefinitions::linkDirectionValues, LinkDirection::NODIR);
1889 :
1890 : StringBijection<TrafficLightType> SUMOXMLDefinitions::TrafficLightTypes(
1891 : SUMOXMLDefinitions::trafficLightTypesValues, TrafficLightType::INVALID);
1892 :
1893 : StringBijection<TrafficLightLayout> SUMOXMLDefinitions::TrafficLightLayouts(
1894 : SUMOXMLDefinitions::trafficLightLayoutValues, TrafficLightLayout::DEFAULT);
1895 :
1896 : StringBijection<InsertionCheck> SUMOXMLDefinitions::InsertionChecks(
1897 : SUMOXMLDefinitions::insertionCheckValues, InsertionCheck::ALL);
1898 :
1899 : StringBijection<LaneChangeModel> SUMOXMLDefinitions::LaneChangeModels(
1900 : SUMOXMLDefinitions::laneChangeModelValues, LaneChangeModel::DEFAULT);
1901 :
1902 : StringBijection<SumoXMLTag> SUMOXMLDefinitions::CarFollowModels(
1903 : SUMOXMLDefinitions::carFollowModelValues, SUMO_TAG_CF_WIEDEMANN);
1904 :
1905 : StringBijection<LaneChangeAction> SUMOXMLDefinitions::LaneChangeActions(
1906 : SUMOXMLDefinitions::laneChangeActionValues, LCA_UNKNOWN);
1907 :
1908 : StringBijection<TrainType> SUMOXMLDefinitions::TrainTypes(
1909 : SUMOXMLDefinitions::trainTypeValues, TrainType::MIREOPLUSH);
1910 :
1911 : StringBijection<POIIcon> SUMOXMLDefinitions::POIIcons(
1912 : SUMOXMLDefinitions::POIIconValues, POIIcon::NONE, false);
1913 :
1914 : StringBijection<ExcludeEmpty> SUMOXMLDefinitions::ExcludeEmptys(
1915 : SUMOXMLDefinitions::excludeEmptyValues, ExcludeEmpty::DEFAULTS, false);
1916 :
1917 : StringBijection<ReferencePosition> SUMOXMLDefinitions::ReferencePositions(
1918 : SUMOXMLDefinitions::referencePositionValues, ReferencePosition::CENTER, false);
1919 :
1920 : StringBijection<MeanDataType> SUMOXMLDefinitions::MeanDataTypes(
1921 : SUMOXMLDefinitions::meanDataTypeValues, MeanDataType::DEFAULT, false);
1922 :
1923 : StringBijection<XMLFileExtension> SUMOXMLDefinitions::XMLFileExtensions(
1924 : SUMOXMLDefinitions::XMLFileExtensionValues, XMLFileExtension::ALL, false);
1925 :
1926 : StringBijection<TXTFileExtension> SUMOXMLDefinitions::TXTFileExtensions(
1927 : SUMOXMLDefinitions::TXTFileExtensionValues, TXTFileExtension::ALL, false);
1928 :
1929 : StringBijection<CSVFileExtension> SUMOXMLDefinitions::CSVFileExtensions(
1930 : SUMOXMLDefinitions::CSVFileExtensionValues, CSVFileExtension::ALL, false);
1931 :
1932 : StringBijection<OSGFileExtension> SUMOXMLDefinitions::OSGFileExtensions(
1933 : SUMOXMLDefinitions::OSGFileExtensionValues, OSGFileExtension::ALL, false);
1934 :
1935 : StringBijection<ImageFileExtension> SUMOXMLDefinitions::ImageFileExtensions(
1936 : SUMOXMLDefinitions::imageFileExtensionValues, ImageFileExtension::ALL, false);
1937 :
1938 : StringBijection<ImageVideoFileExtension> SUMOXMLDefinitions::ImageVideoFileExtensions(
1939 : SUMOXMLDefinitions::imageVideoFileExtensionValues, ImageVideoFileExtension::ALL, false);
1940 :
1941 : StringBijection<OutputFileExtension> SUMOXMLDefinitions::OutputFileExtensions(
1942 : SUMOXMLDefinitions::outputFileExtensionValues, OutputFileExtension::ALL, false);
1943 :
1944 : StringBijection<ViewSettingsFileExtension> SUMOXMLDefinitions::ViewSettingsFileExtensions(
1945 : SUMOXMLDefinitions::viewSettingsFileExtensionValues, ViewSettingsFileExtension::ALL, false);
1946 :
1947 : StringBijection<StateFileExtension> SUMOXMLDefinitions::StateFileExtensions(
1948 : SUMOXMLDefinitions::stateFileExtensionValues, StateFileExtension::ALL, false);
1949 :
1950 : StringBijection<SumoConfigFileExtension> SUMOXMLDefinitions::SumoConfigFileExtensions(
1951 : SUMOXMLDefinitions::sumoConfigFileExtensionValues, SumoConfigFileExtension::ALL, false);
1952 :
1953 : StringBijection<NeteditConfigFileExtension> SUMOXMLDefinitions::NeteditConfigFileExtensions(
1954 : SUMOXMLDefinitions::neteditConfigFileExtensionValues, NeteditConfigFileExtension::ALL, false);
1955 :
1956 : StringBijection<NetconvertConfigFileExtension> SUMOXMLDefinitions::NetconvertConfigFileExtensions(
1957 : SUMOXMLDefinitions::netconvertConfigFileExtensionValues, NetconvertConfigFileExtension::ALL, false);
1958 :
1959 : StringBijection<NetconvertPlainFileExtension> SUMOXMLDefinitions::NetconvertPlainFileExtensions(
1960 : SUMOXMLDefinitions::netconvertPlainFileExtensionValues, NetconvertPlainFileExtension::ALL, false);
1961 :
1962 : StringBijection<OSMFileExtension> SUMOXMLDefinitions::OSMFileExtensions(
1963 : SUMOXMLDefinitions::osmFileExtensionValues, OSMFileExtension::ALL, false);
1964 :
1965 : StringBijection<NetFileExtension> SUMOXMLDefinitions::NetFileExtensions(
1966 : SUMOXMLDefinitions::netFileExtensionValues, NetFileExtension::ALL, false);
1967 :
1968 : StringBijection<TLSFileExtension> SUMOXMLDefinitions::TLSFileExtensions(
1969 : SUMOXMLDefinitions::TLSFileExtensionValues, TLSFileExtension::ALL, false);
1970 :
1971 : StringBijection<JunctionFileExtension> SUMOXMLDefinitions::JunctionFileExtensions(
1972 : SUMOXMLDefinitions::junctionFileExtensionValues, JunctionFileExtension::ALL, false);
1973 :
1974 : StringBijection<EdgeTypeFileExtension> SUMOXMLDefinitions::EdgeTypeFileExtensions(
1975 : SUMOXMLDefinitions::edgeTypeFileExtensionValues, EdgeTypeFileExtension::ALL, false);
1976 :
1977 : StringBijection<AdditionalFileExtension> SUMOXMLDefinitions::AdditionalFileExtensions(
1978 : SUMOXMLDefinitions::additionalFileExtensionValues, AdditionalFileExtension::ALL, false);
1979 :
1980 : StringBijection<ShapesFileExtension> SUMOXMLDefinitions::ShapesFileExtensions(
1981 : SUMOXMLDefinitions::shapesFileExtensionValues, ShapesFileExtension::ALL, false);
1982 :
1983 : StringBijection<RouteFileExtension> SUMOXMLDefinitions::RouteFileExtensions(
1984 : SUMOXMLDefinitions::routeFileExtensionsValues, RouteFileExtension::ALL, false);
1985 :
1986 : StringBijection<EdgeDataFileExtension> SUMOXMLDefinitions::EdgeDataFileExtensions(
1987 : SUMOXMLDefinitions::edgeDataFileExtensionsValues, EdgeDataFileExtension::ALL, false);
1988 :
1989 : StringBijection<MeanDataFileExtension> SUMOXMLDefinitions::MeanDataFileExtensions(
1990 : SUMOXMLDefinitions::meanDataFileExtensionsValues, MeanDataFileExtension::ALL, false);
1991 :
1992 : std::string
1993 1293113 : SUMOXMLDefinitions::getJunctionIDFromInternalEdge(const std::string internalEdge) {
1994 : assert(internalEdge[0] == ':');
1995 1293113 : return internalEdge.substr(1, internalEdge.rfind('_') - 1);
1996 : }
1997 :
1998 :
1999 : std::string
2000 16964271 : SUMOXMLDefinitions::getEdgeIDFromLane(const std::string laneID) {
2001 16964271 : return laneID.substr(0, laneID.rfind('_'));
2002 : }
2003 :
2004 : int
2005 17681 : SUMOXMLDefinitions::getIndexFromLane(const std::string laneID) {
2006 35362 : return StringUtils::toInt(laneID.substr(laneID.rfind('_') + 1));
2007 : }
2008 :
2009 :
2010 : bool
2011 214680 : SUMOXMLDefinitions::isValidNetID(const std::string& value) {
2012 429360 : return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,<>&") == std::string::npos && value[0] != ':';
2013 : }
2014 :
2015 :
2016 : bool
2017 752176 : SUMOXMLDefinitions::isValidVehicleID(const std::string& value) {
2018 1504344 : return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,<>&") == std::string::npos;
2019 : }
2020 :
2021 :
2022 : bool
2023 12868 : SUMOXMLDefinitions::isValidTypeID(const std::string& value) {
2024 25736 : return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,<>&") == std::string::npos;
2025 : }
2026 :
2027 : bool
2028 0 : SUMOXMLDefinitions::isValidAdditionalID(const std::string& value) {
2029 0 : return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,<>&") == std::string::npos;
2030 : }
2031 :
2032 : bool
2033 0 : SUMOXMLDefinitions::isValidDetectorID(const std::string& value) {
2034 : // special case: ' ' allowed
2035 0 : return (value.size() > 0) && value.find_first_of("\t\n\r|\\'\";,<>&") == std::string::npos;
2036 : }
2037 :
2038 : bool
2039 1617 : SUMOXMLDefinitions::isValidAttribute(const std::string& value) {
2040 1617 : return value.find_first_of("\t\n\r&|\\'\"<>") == std::string::npos;
2041 : }
2042 :
2043 :
2044 : bool
2045 0 : SUMOXMLDefinitions::isValidFilename(const std::string& value) {
2046 0 : return (value.find_first_of("\t\n\r@$%^&|{}*'\";<>") == std::string::npos);
2047 : }
2048 :
2049 :
2050 : bool
2051 0 : SUMOXMLDefinitions::isValidListOfNetIDs(const std::string& value) {
2052 0 : const std::vector<std::string>& typeIDs = StringTokenizer(value).getVector();
2053 0 : if (typeIDs.empty()) {
2054 : return false;
2055 : } else {
2056 : // check that gives IDs are valid
2057 0 : for (auto i : typeIDs) {
2058 0 : if (!SUMOXMLDefinitions::isValidNetID(i)) {
2059 : return false;
2060 : }
2061 : }
2062 0 : return true;
2063 : }
2064 0 : }
2065 :
2066 :
2067 : bool
2068 0 : SUMOXMLDefinitions::isValidListOfTypeID(const std::string& value) {
2069 0 : return isValidListOfTypeID(StringTokenizer(value).getVector());
2070 : }
2071 :
2072 :
2073 : bool
2074 0 : SUMOXMLDefinitions::isValidListOfTypeID(const std::vector<std::string>& typeIDs) {
2075 0 : if (typeIDs.empty()) {
2076 : return false;
2077 : } else {
2078 : // check that gives IDs are valid
2079 0 : for (const auto& typeID : typeIDs) {
2080 0 : if (!SUMOXMLDefinitions::isValidTypeID(typeID)) {
2081 : return false;
2082 : }
2083 : }
2084 : return true;
2085 : }
2086 : }
2087 :
2088 :
2089 : bool
2090 1617 : SUMOXMLDefinitions::isValidParameterKey(const std::string& value) {
2091 : // Generic parameters keys cannot be empty
2092 1617 : if (value.empty()) {
2093 : return false;
2094 : } else {
2095 1617 : return isValidAttribute(value);
2096 : }
2097 : }
2098 :
2099 :
2100 : std::string
2101 1242 : SUMOXMLDefinitions::makeValidID(const std::string& value) {
2102 1242 : if (value.empty()) {
2103 0 : return "_";
2104 : }
2105 : std::string result(value);
2106 1242 : if (result[0] == ':') {
2107 0 : result[0] = '_';
2108 : }
2109 18630 : for (const char c : " \t\n\r|\\'\";,<>&") {
2110 : std::replace(result.begin(), result.end(), c, '_');
2111 : }
2112 1242 : return result;
2113 : }
2114 :
2115 :
2116 : /****************************************************************************/
|