Eclipse SUMO - Simulation of Urban MObility
NIImporter_ITSUMO.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // Importer for networks stored in ITSUMO format
16 /****************************************************************************/
17 #ifndef NIImporter_ITSUMO_h
18 #define NIImporter_ITSUMO_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <string>
27 #include <map>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class NBEdge;
37 class NBEdgeCont;
38 class NBNetBuilder;
39 class NBNode;
40 class NBNodeCont;
42 class NBTypeCont;
43 class OptionsCont;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
55 public:
67  static void loadNetwork(const OptionsCont& oc, NBNetBuilder& nb);
68 
69 
70 private:
75  class Handler : public GenericSAXHandler {
76  public:
80  Handler(NBNetBuilder& toFill);
81 
82 
84  ~Handler();
85 
86 
87  protected:
89 
90 
98  void myStartElement(int element, const SUMOSAXAttributes& attrs);
99 
100 
109  void myCharacters(int element, const std::string& chars);
110 
111 
118  void myEndElement(int element);
120 
121 
122  private:
125 
127  std::map<std::string, std::string> myParameter;
128 
129 
130  struct Lane {
131  public:
132  Lane(const std::string& _id, int _idx, double _v)
133  : id(_id), index(_idx), v(_v) {}
134  std::string id;
135  int index;
136  double v;
137  };
138 
139  std::vector<Lane> myCurrentLanes;
140 
141  struct LaneSet {
142  public:
143  LaneSet(const std::string& _id, const std::vector<Lane>& _lanes, double _v, int _pos, NBNode* _from, NBNode* _to)
144  : id(_id), lanes(_lanes), v(_v), position(_pos), from(_from), to(_to) {}
145  std::string id;
146  std::vector<Lane> lanes;
147  double v;
148  int position;
151  };
152 
153  std::map<std::string, LaneSet*> myLaneSets;
154  std::vector<LaneSet*> myCurrentLaneSets;
155 
156  struct Section {
157  public:
158  Section(const std::string& _id, const std::vector<LaneSet*>& _laneSets)
159  : id(_id), laneSets(_laneSets) {}
160  std::string id;
161  std::vector<LaneSet*> laneSets;
162  };
163 
164  std::vector<Section*> mySections;
165 
166 
167  private:
169  Handler(const Handler& s);
170 
172  Handler& operator=(const Handler& s);
173 
174  };
175 
176 
177 
223  };
224 
225 
233  };
234 
237 
240 
241 
242 };
243 
244 
245 #endif
246 
247 /****************************************************************************/
248 
NIImporter_ITSUMO::Handler::LaneSet::from
NBNode * from
Definition: NIImporter_ITSUMO.h:149
NIImporter_ITSUMO::Handler::Section::Section
Section(const std::string &_id, const std::vector< LaneSet * > &_laneSets)
Definition: NIImporter_ITSUMO.h:158
NIImporter_ITSUMO::ITSUMO_TAG_SECTION_NAME
Definition: NIImporter_ITSUMO.h:204
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:61
NBNetBuilder
Instance responsible for building networks.
Definition: NBNetBuilder.h:110
NBTrafficLightLogicCont
A container for traffic light definitions and built programs.
Definition: NBTrafficLightLogicCont.h:58
NIImporter_ITSUMO::ITSUMO_TAG_SECTION_ID
Definition: NIImporter_ITSUMO.h:203
NIImporter_ITSUMO::Handler::Lane
Definition: NIImporter_ITSUMO.h:130
NIImporter_ITSUMO::ITSUMO_TAG_SINKS
Definition: NIImporter_ITSUMO.h:195
NIImporter_ITSUMO::ITSUMO_TAG_LANE_ID
Definition: NIImporter_ITSUMO.h:219
NIImporter_ITSUMO::ITSUMO_TAG_NODE
Definition: NIImporter_ITSUMO.h:189
SUMOSAXHandler.h
NIImporter_ITSUMO::ITSUMO_TAG_IS_PREFERENCIAL
Definition: NIImporter_ITSUMO.h:205
NIImporter_ITSUMO::Handler::myLaneSets
std::map< std::string, LaneSet * > myLaneSets
Definition: NIImporter_ITSUMO.h:153
NIImporter_ITSUMO::ITSUMO_TAG_SOURCES
Definition: NIImporter_ITSUMO.h:194
NIImporter_ITSUMO::ITSUMO_TAG_STREETS
Definition: NIImporter_ITSUMO.h:197
NIImporter_ITSUMO::Handler::LaneSet::lanes
std::vector< Lane > lanes
Definition: NIImporter_ITSUMO.h:146
NIImporter_ITSUMO::Handler::LaneSet::id
std::string id
Definition: NIImporter_ITSUMO.h:145
NIImporter_ITSUMO::Handler::Handler
Handler(NBNetBuilder &toFill)
Contructor.
Definition: NIImporter_ITSUMO.cpp:134
NBNodeCont
Container for nodes during the netbuilding process.
Definition: NBNodeCont.h:60
NIImporter_ITSUMO::ITSUMO_TAG_LANESETS
Definition: NIImporter_ITSUMO.h:207
NIImporter_ITSUMO::ITSUMO_TAG_LANE_POSITION
Definition: NIImporter_ITSUMO.h:220
NIImporter_ITSUMO::itsumoTags
static StringBijection< int >::Entry itsumoTags[]
The names of MATSIM-XML elements (for passing to GenericSAXHandler)
Definition: NIImporter_ITSUMO.h:236
NBEdge
The representation of a single edge during network building.
Definition: NBEdge.h:86
NIImporter_ITSUMO::Handler::Lane::index
int index
Definition: NIImporter_ITSUMO.h:135
NIImporter_ITSUMO::Handler::LaneSet::position
int position
Definition: NIImporter_ITSUMO.h:148
NIImporter_ITSUMO::ITSUMO_TAG_NOTHING
Definition: NIImporter_ITSUMO.h:184
NIImporter_ITSUMO::Handler::myParameter
std::map< std::string, std::string > myParameter
A temporary parameter map.
Definition: NIImporter_ITSUMO.h:127
NIImporter_ITSUMO::Handler::myNetBuilder
NBNetBuilder & myNetBuilder
The container to fill.
Definition: NIImporter_ITSUMO.h:124
NIImporter_ITSUMO::ITSUMO_TAG_MAXIMUM_SPEED
Definition: NIImporter_ITSUMO.h:221
NIImporter_ITSUMO::ITSUMO_TAG_NODE_NAME
Definition: NIImporter_ITSUMO.h:191
NIImporter_ITSUMO::ITSUMO_TAG_STREET
Definition: NIImporter_ITSUMO.h:198
NIImporter_ITSUMO::Handler::~Handler
~Handler()
Destructor.
Definition: NIImporter_ITSUMO.cpp:139
StringBijection
Definition: StringBijection.h:44
NIImporter_ITSUMO::Handler::Lane::Lane
Lane(const std::string &_id, int _idx, double _v)
Definition: NIImporter_ITSUMO.h:132
NIImporter_ITSUMO::Handler::LaneSet::LaneSet
LaneSet(const std::string &_id, const std::vector< Lane > &_lanes, double _v, int _pos, NBNode *_from, NBNode *_to)
Definition: NIImporter_ITSUMO.h:143
NIImporter_ITSUMO::Handler::Section::laneSets
std::vector< LaneSet * > laneSets
Definition: NIImporter_ITSUMO.h:161
NIImporter_ITSUMO::ITSUMO_TAG_X_COORD
Definition: NIImporter_ITSUMO.h:192
NIImporter_ITSUMO::ITSUMO_TAG_DELIMITING_NODE
Definition: NIImporter_ITSUMO.h:206
NIImporter_ITSUMO::ITSUMO_ATTR_NOTHING
Definition: NIImporter_ITSUMO.h:232
NIImporter_ITSUMO::ITSUMO_TAG_Y_COORD
Definition: NIImporter_ITSUMO.h:193
NBCapacity2Lanes.h
NIImporter_ITSUMO::ITSUMO_TAG_DESTINATION_LANESET
Definition: NIImporter_ITSUMO.h:215
NIImporter_ITSUMO::ITSUMO_TAG_NETWORK_NAME
Definition: NIImporter_ITSUMO.h:187
UtilExceptions.h
NIImporter_ITSUMO::Handler::operator=
Handler & operator=(const Handler &s)
invalidated assignment operator
OptionsCont
A storage for options typed value containers)
Definition: OptionsCont.h:90
NIImporter_ITSUMO::loadNetwork
static void loadNetwork(const OptionsCont &oc, NBNetBuilder &nb)
Loads content of the optionally given ITSUMO network files.
Definition: NIImporter_ITSUMO.cpp:105
NIImporter_ITSUMO::ITSUMO_TAG_NETWORK_ID
Definition: NIImporter_ITSUMO.h:186
NIImporter_ITSUMO::ItsumoXMLTag
ItsumoXMLTag
Numbers representing ITSUMO-XML - element names.
Definition: NIImporter_ITSUMO.h:183
NIImporter_ITSUMO::ITSUMO_TAG_SECTIONS
Definition: NIImporter_ITSUMO.h:201
NIImporter_ITSUMO::ITSUMO_TAG_LANE
Definition: NIImporter_ITSUMO.h:218
NIImporter_ITSUMO::ITSUMO_TAG_SIMULATION
Definition: NIImporter_ITSUMO.h:185
NIImporter_ITSUMO::Handler::LaneSet
Definition: NIImporter_ITSUMO.h:141
NIImporter_ITSUMO::ITSUMO_TAG_NODE_ID
Definition: NIImporter_ITSUMO.h:190
NIImporter_ITSUMO::Handler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
Definition: NIImporter_ITSUMO.cpp:143
NIImporter_ITSUMO::ITSUMO_TAG_LANESET_POSITION
Definition: NIImporter_ITSUMO.h:210
NIImporter_ITSUMO::ItsumoXMLAttr
ItsumoXMLAttr
Numbers representing MATSIM-XML - attributes.
Definition: NIImporter_ITSUMO.h:231
NIImporter_ITSUMO::Handler::mySections
std::vector< Section * > mySections
Definition: NIImporter_ITSUMO.h:164
NIImporter_ITSUMO::ITSUMO_TAG_STREET_ID
Definition: NIImporter_ITSUMO.h:199
NIImporter_ITSUMO::ITSUMO_TAG_DECELERATION_PROB
Definition: NIImporter_ITSUMO.h:222
NIImporter_ITSUMO::Handler::myCurrentLanes
std::vector< Lane > myCurrentLanes
Definition: NIImporter_ITSUMO.h:139
NIImporter_ITSUMO::ITSUMO_TAG_LANES
Definition: NIImporter_ITSUMO.h:217
NIImporter_ITSUMO::Handler
Definition: NIImporter_ITSUMO.h:75
NBTypeCont
A storage for available types of edges.
Definition: NBTypeCont.h:55
NIImporter_ITSUMO::Handler::myEndElement
void myEndElement(int element)
Callback method for a closing tag to implement by derived classes.
Definition: NIImporter_ITSUMO.cpp:208
NIImporter_ITSUMO::Handler::Section
Definition: NIImporter_ITSUMO.h:156
NIImporter_ITSUMO::Handler::LaneSet::to
NBNode * to
Definition: NIImporter_ITSUMO.h:150
NIImporter_ITSUMO
Importer for networks stored in ITSUMO format.
Definition: NIImporter_ITSUMO.h:54
NIImporter_ITSUMO::ITSUMO_TAG_PROBABILITY
Definition: NIImporter_ITSUMO.h:216
NIImporter_ITSUMO::Handler::Lane::id
std::string id
Definition: NIImporter_ITSUMO.h:134
NIImporter_ITSUMO::Handler::LaneSet::v
double v
Definition: NIImporter_ITSUMO.h:147
NIImporter_ITSUMO::Handler::myCharacters
void myCharacters(int element, const std::string &chars)
Callback method for characters to implement by derived classes.
Definition: NIImporter_ITSUMO.cpp:158
config.h
NIImporter_ITSUMO::ITSUMO_TAG_LANESET
Definition: NIImporter_ITSUMO.h:208
NIImporter_ITSUMO::Handler::myCurrentLaneSets
std::vector< LaneSet * > myCurrentLaneSets
Definition: NIImporter_ITSUMO.h:154
NIImporter_ITSUMO::ITSUMO_TAG_SECTION
Definition: NIImporter_ITSUMO.h:202
NBNode
Represents a single node (junction) during network building.
Definition: NBNode.h:68
NIImporter_ITSUMO::ITSUMO_TAG_TRAFFIC_LIGHTS
Definition: NIImporter_ITSUMO.h:196
NIImporter_ITSUMO::Handler::Lane::v
double v
Definition: NIImporter_ITSUMO.h:136
NIImporter_ITSUMO::ITSUMO_TAG_DIRECTION
Definition: NIImporter_ITSUMO.h:214
NIImporter_ITSUMO::ITSUMO_TAG_START_NODE
Definition: NIImporter_ITSUMO.h:211
GenericSAXHandler
A handler which converts occuring elements and attributes into enums.
Definition: GenericSAXHandler.h:68
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:57
NIImporter_ITSUMO::itsumoAttrs
static StringBijection< int >::Entry itsumoAttrs[]
The names of MATSIM-XML attributes (for passing to GenericSAXHandler)
Definition: NIImporter_ITSUMO.h:239
NIImporter_ITSUMO::ITSUMO_TAG_END_NODE
Definition: NIImporter_ITSUMO.h:212
NIImporter_ITSUMO::Handler::Section::id
std::string id
Definition: NIImporter_ITSUMO.h:160
NIImporter_ITSUMO::ITSUMO_TAG_NODES
Definition: NIImporter_ITSUMO.h:188
NIImporter_ITSUMO::ITSUMO_TAG_LANESET_ID
Definition: NIImporter_ITSUMO.h:209
NIImporter_ITSUMO::ITSUMO_TAG_TURNING_PROBABILITIES
Definition: NIImporter_ITSUMO.h:213
NIImporter_ITSUMO::ITSUMO_TAG_STREET_NAME
Definition: NIImporter_ITSUMO.h:200