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