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