Eclipse SUMO - Simulation of Urban MObility
NIImporter_OpenStreetMap.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 /****************************************************************************/
19 // Importer for networks stored in OpenStreetMap format
20 /****************************************************************************/
21 #ifndef NIImporter_OpenStreetMap_h
22 #define NIImporter_OpenStreetMap_h
23 
24 
25 // ===========================================================================
26 // included modules
27 // ===========================================================================
28 #include <config.h>
29 
30 #include <string>
31 #include <map>
35 #include <netbuild/NBPTPlatform.h>
36 
37 
38 // ===========================================================================
39 // class declarations
40 // ===========================================================================
41 class NBEdge;
42 class NBEdgeCont;
43 class NBNetBuilder;
44 class NBNode;
45 class NBNodeCont;
47 class NBTypeCont;
48 class OptionsCont;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
60 public:
72  static void loadNetwork(const OptionsCont& oc, NBNetBuilder& nb);
73 
74 
75 protected:
78  struct NIOSMNode {
79  NIOSMNode(long long int _id, double _lon, double _lat)
80  :
81  id(_id), lon(_lon), lat(_lat), ele(0),
82  tlsControlled(false),
83  railwayCrossing(false),
84  railwaySignal(false),
85  railwayBufferStop(false),
86  ptStopPosition(false), ptStopLength(0), name(""),
88  positionMeters(std::numeric_limits<double>::max()),
89  node(0) { }
90 
92  const long long int id;
94  const double lon;
96  const double lat;
98  double ele;
110  double ptStopLength;
112  std::string name;
116  std::string position;
121 
122  private:
124  NIOSMNode& operator=(const NIOSMNode& s) = delete;
125 
126 
127  };
128 
132  enum WayType {
133  WAY_NONE = 0,
138  };
139 
140  enum ParkingType {
149  };
150 
151 
154  struct Edge : public Parameterised {
155 
156  explicit Edge(long long int _id)
157  :
159  myCyclewayType(WAY_UNKNOWN), // building of extra lane depends on bikelaneWidth of loaded typemap
160  myBuswayType(WAY_NONE), // buslanes are always built when declared
161  mySidewalkType(WAY_UNKNOWN), // building of extra lanes depends on sidewalkWidth of loaded typemap
162  myRailDirection(WAY_UNKNOWN), // store direction(s) of railway usage
163  myParkingType(PARKING_NONE), // parking areas exported optionally
164  myLayer(0), // layer is non-zero only in conflict areas
165  myCurrentIsRoad(false),
166  myCurrentIsPlatform(false),
168  { }
169 
170 
172  const long long int id;
174  std::string streetName;
176  std::string ref;
182  double myMaxSpeed;
184  std::string myHighWayType;
186  std::string myIsOneWay;
198  int myLayer;
200  std::vector<long long int> myCurrentNodes;
207 
208  private:
210  Edge& operator=(const Edge& s) = delete;
211 
212 
213  };
214 
215 
217 
219 
220  void load(const OptionsCont& oc, NBNetBuilder& nb);
221 
222 private:
226  class CompareNodes {
227  public:
228  bool operator()(const NIOSMNode* n1, const NIOSMNode* n2) const {
229  return (n1->lat > n2->lat) || (n1->lat == n2->lat && n1->lon > n2->lon);
230  }
231  };
232 
233 
235  static const std::string compoundTypeSeparator;
236 
238 
242  std::map<long long int, NIOSMNode*> myOSMNodes;
243 
245  std::set<NIOSMNode*, CompareNodes> myUniqueNodes;
246 
247 
249  std::map<long long int, Edge*> myEdges;
250 
252  std::map<long long int, Edge*> myPlatformShapes;
253 
255  std::set<std::string> myUnusableTypes;
256 
258  std::map<std::string, std::string> myKnownCompoundTypes;
259 
274  NBNode* insertNodeChecking(long long int id, NBNodeCont& nc, NBTrafficLightLogicCont& tlsc);
275 
276 
289  int insertEdge(Edge* e, int index, NBNode* from, NBNode* to,
290  const std::vector<long long int>& passed, NBNetBuilder& nb);
291 
293  void reconstructLayerElevation(double layerElevation, NBNetBuilder& nb);
294 
296  std::map<NBNode*, std::pair<double, double> >
297  getNeighboringNodes(NBNode* node, double maxDist, const std::set<NBNode*>& knownElevation);
298 
300  std::string usableType(const std::string& type, const std::string& id, NBTypeCont& tc);
301 
303  void extendRailwayDistances(Edge* e, NBTypeCont& tc);
304 
306  static double interpretDistance(NIOSMNode* node);
307 
308 
309 protected:
310  static const double MAXSPEED_UNGIVEN;
311  static const long long int INVALID_ID;
312 
317  friend class NodesHandler;
318  class NodesHandler : public SUMOSAXHandler {
319  public:
325  NodesHandler(std::map<long long int, NIOSMNode*>& toFill, std::set<NIOSMNode*,
326  CompareNodes>& uniqueNodes,
327  const OptionsCont& cont);
328 
329 
331  ~NodesHandler() override;
332 
333 
334  protected:
336 
337 
345  void myStartElement(int element, const SUMOSAXAttributes& attrs) override;
346 
347 
354  void myEndElement(int element) override;
356 
357 
358  private:
359 
361  std::map<long long int, NIOSMNode*>& myToFill;
362 
364  long long int myLastNodeID;
365 
368 
371 
373  std::set<NIOSMNode*, CompareNodes>& myUniqueNodes;
374 
376  const bool myImportElevation;
377 
380 
381 
382  private:
384  NodesHandler(const NodesHandler& s);
385 
388 
389  };
390 
391 
396  class EdgesHandler : public SUMOSAXHandler {
397  public:
403  EdgesHandler(const std::map<long long int, NIOSMNode*>& osmNodes,
404  std::map<long long int, Edge*>& toFill, std::map<long long int, Edge*>& platformShapes);
405 
406 
408  ~EdgesHandler() override;
409 
410 
411  protected:
413 
414 
422  void myStartElement(int element, const SUMOSAXAttributes& attrs) override;
423 
424 
431  void myEndElement(int element) override;
433 
434 
435  private:
437  const std::map<long long int, NIOSMNode*>& myOSMNodes;
438 
440  std::map<long long int, Edge*>& myEdgeMap;
441 
443  std::map<long long int, Edge*>& myPlatformShapesMap;
444 
447 
449  std::vector<int> myParentElements;
450 
452  std::map<std::string, double> mySpeedMap;
453 
456 
457  private:
459  EdgesHandler(const EdgesHandler& s);
460 
463 
464  };
465 
472  public:
478  RelationHandler(const std::map<long long int, NIOSMNode*>& osmNodes,
479  const std::map<long long int, Edge*>& osmEdges, NBPTStopCont* nbptStopCont,
480  const std::map<long long int, Edge*>& platfromShapes, NBPTLineCont* nbptLineCont,
481  const OptionsCont& oc);
482 
483 
485  ~RelationHandler() override;
486 
487 
488  protected:
490 
491 
499  void myStartElement(int element, const SUMOSAXAttributes& attrs) override;
500 
501 
508  void myEndElement(int element) override;
510 
511 
512  private:
514  const std::map<long long int, NIOSMNode*>& myOSMNodes;
515 
517  const std::map<long long int, Edge*>& myOSMEdges;
518 
520  const std::map<long long int, Edge*>& myPlatformShapes;
521 
524 
527 
529  long long int myCurrentRelation;
530 
532  std::vector<int> myParentElements;
533 
536 
538  long long int myFromWay;
539 
541  long long int myToWay;
542 
544  long long int myViaNode;
545  long long int myViaWay;
546 
547 
550 
561  };
563 
565  void resetValues();
566 
568  bool checkEdgeRef(long long int ref) const;
569 
571  bool applyRestriction() const;
572 
574  NBEdge* findEdgeRef(long long int wayRef, const std::vector<NBEdge*>& candidates) const;
575 
576  private:
579 
582 
584  std::vector<long long int> myStops;
585 
586 
587  struct NIIPTPlatform {
588  long long int ref;
589  bool isWay;
590  };
591 
593  std::vector<NIIPTPlatform> myPlatforms;
594 
596  std::vector<long long int> myWays;
597 
600 
602  bool myIsRoute;
603 
605  std::string myPTRouteType;
606 
608  std::string myName;
609 
611  std::string myRef;
612 
615 
617  std::string myNightService;
618  };
619 
620 };
621 
622 
623 #endif
624 
625 /****************************************************************************/
626 
NIImporter_OpenStreetMap::NIOSMNode::name
std::string name
The name of the node.
Definition: NIImporter_OpenStreetMap.h:112
NIImporter_OpenStreetMap::Edge::myIsOneWay
std::string myIsOneWay
Information whether this is an one-way road.
Definition: NIImporter_OpenStreetMap.h:186
NIImporter_OpenStreetMap::RelationHandler::myNBPTStopCont
NBPTStopCont * myNBPTStopCont
The previously filled pt stop container.
Definition: NIImporter_OpenStreetMap.h:523
NIImporter_OpenStreetMap::RelationHandler::operator=
RelationHandler & operator=(const RelationHandler &s)
invalidated assignment operator
NIImporter_OpenStreetMap::NodesHandler::myIsInValidNodeTag
bool myIsInValidNodeTag
Hierarchy helper for parsing a node's tags.
Definition: NIImporter_OpenStreetMap.h:367
NIImporter_OpenStreetMap::myKnownCompoundTypes
std::map< std::string, std::string > myKnownCompoundTypes
The compound types that have already been mapped to other known types.
Definition: NIImporter_OpenStreetMap.h:258
NIImporter_OpenStreetMap::insertNodeChecking
NBNode * insertNodeChecking(long long int id, NBNodeCont &nc, NBTrafficLightLogicCont &tlsc)
Builds an NBNode.
Definition: NIImporter_OpenStreetMap.cpp:267
NIImporter_OpenStreetMap::NIOSMNode::NIOSMNode
NIOSMNode(long long int _id, double _lon, double _lat)
Definition: NIImporter_OpenStreetMap.h:79
NBPTStopCont
Definition: NBPTStopCont.h:28
NIImporter_OpenStreetMap::NIOSMNode
An internal representation of an OSM-node.
Definition: NIImporter_OpenStreetMap.h:78
NIImporter_OpenStreetMap::RelationHandler::myOSMNodes
const std::map< long long int, NIOSMNode * > & myOSMNodes
The previously parsed nodes.
Definition: NIImporter_OpenStreetMap.h:514
NIImporter_OpenStreetMap::loadNetwork
static void loadNetwork(const OptionsCont &oc, NBNetBuilder &nb)
Loads content of the optionally given OSM file.
Definition: NIImporter_OpenStreetMap.cpp:103
NIImporter_OpenStreetMap::RelationHandler::myName
std::string myName
name of the relation
Definition: NIImporter_OpenStreetMap.h:608
Parameterised
An upper class for objects with additional parameters.
Definition: Parameterised.h:43
NIImporter_OpenStreetMap::NIOSMNode::ele
double ele
The elevation of this node.
Definition: NIImporter_OpenStreetMap.h:98
NIImporter_OpenStreetMap::PARKING_NONE
Definition: NIImporter_OpenStreetMap.h:141
NIImporter_OpenStreetMap::Edge::id
const long long int id
The edge's id.
Definition: NIImporter_OpenStreetMap.h:172
NIImporter_OpenStreetMap::Edge::myBuswayType
WayType myBuswayType
Information about the kind of busway along this road.
Definition: NIImporter_OpenStreetMap.h:190
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:61
NIImporter_OpenStreetMap::NIOSMNode::ptStopLength
double ptStopLength
The length of the pt stop.
Definition: NIImporter_OpenStreetMap.h:110
NIImporter_OpenStreetMap::PARKING_RIGHT
Definition: NIImporter_OpenStreetMap.h:143
NIImporter_OpenStreetMap::RelationHandler::myNightService
std::string myNightService
night service information of the pt line
Definition: NIImporter_OpenStreetMap.h:617
SUMOSAXHandler
SAX-handler base for SUMO-files.
Definition: SUMOSAXHandler.h:42
NBNetBuilder
Instance responsible for building networks.
Definition: NBNetBuilder.h:110
NIImporter_OpenStreetMap::ParkingType
ParkingType
Definition: NIImporter_OpenStreetMap.h:140
NBTrafficLightLogicCont
A container for traffic light definitions and built programs.
Definition: NBTrafficLightLogicCont.h:58
NIImporter_OpenStreetMap::RelationHandler::myRef
std::string myRef
ref of the pt line
Definition: NIImporter_OpenStreetMap.h:611
NIImporter_OpenStreetMap::RelationHandler::myPlatforms
std::vector< NIIPTPlatform > myPlatforms
bus stop platforms
Definition: NIImporter_OpenStreetMap.h:593
NIImporter_OpenStreetMap::PARKING_PERPENDICULAR
Definition: NIImporter_OpenStreetMap.h:147
NBPTPlatform.h
NIImporter_OpenStreetMap::CompareNodes
Functor which compares two NIOSMNodes according to their coordinates.
Definition: NIImporter_OpenStreetMap.h:226
NIImporter_OpenStreetMap::RelationHandler::RESTRICTION_ONLY
The only valid connection is declared.
Definition: NIImporter_OpenStreetMap.h:556
NIImporter_OpenStreetMap::Edge::myCurrentIsElectrified
bool myCurrentIsElectrified
Information whether this is railway is electrified.
Definition: NIImporter_OpenStreetMap.h:206
NIImporter_OpenStreetMap::NIOSMNode::railwayCrossing
bool railwayCrossing
Whether this is a railway crossing.
Definition: NIImporter_OpenStreetMap.h:102
NIImporter_OpenStreetMap::RelationHandler::~RelationHandler
~RelationHandler() override
Destructor.
NIImporter_OpenStreetMap::RelationHandler::resetValues
void resetValues()
reset members to their defaults for parsing a new relation
Definition: NIImporter_OpenStreetMap.cpp:1082
SUMOSAXHandler.h
NIImporter_OpenStreetMap::RelationHandler::myRestrictionType
RestrictionType myRestrictionType
Definition: NIImporter_OpenStreetMap.h:562
NIImporter_OpenStreetMap::EdgesHandler::myCurrentEdge
Edge * myCurrentEdge
The currently built edge.
Definition: NIImporter_OpenStreetMap.h:446
NIImporter_OpenStreetMap::NIOSMNode::railwayBufferStop
bool railwayBufferStop
Whether this is a railway buffer stop.
Definition: NIImporter_OpenStreetMap.h:106
NIImporter_OpenStreetMap::CompareNodes::operator()
bool operator()(const NIOSMNode *n1, const NIOSMNode *n2) const
Definition: NIImporter_OpenStreetMap.h:228
NIImporter_OpenStreetMap::NIOSMNode::tlsControlled
bool tlsControlled
Whether this is a tls controlled junction.
Definition: NIImporter_OpenStreetMap.h:100
NIImporter_OpenStreetMap::RelationHandler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs) override
Called on the opening of a tag;.
Definition: NIImporter_OpenStreetMap.cpp:1099
NIImporter_OpenStreetMap::PARKING_DIAGONAL
Definition: NIImporter_OpenStreetMap.h:148
NIImporter_OpenStreetMap::Edge
An internal definition of a loaded edge.
Definition: NIImporter_OpenStreetMap.h:154
NIImporter_OpenStreetMap::NodesHandler
A class which extracts OSM-nodes from a parsed OSM-file.
Definition: NIImporter_OpenStreetMap.h:318
NIImporter_OpenStreetMap::Edge::myCurrentNodes
std::vector< long long int > myCurrentNodes
The list of nodes this edge is made of.
Definition: NIImporter_OpenStreetMap.h:200
NIImporter_OpenStreetMap::NodesHandler::myHierarchyLevel
int myHierarchyLevel
The current hierarchy level.
Definition: NIImporter_OpenStreetMap.h:370
NIImporter_OpenStreetMap::WAY_NONE
Definition: NIImporter_OpenStreetMap.h:133
NIImporter_OpenStreetMap::reconstructLayerElevation
void reconstructLayerElevation(double layerElevation, NBNetBuilder &nb)
reconstruct elevation from layer info
Definition: NIImporter_OpenStreetMap.cpp:1451
NIImporter_OpenStreetMap::load
void load(const OptionsCont &oc, NBNetBuilder &nb)
Definition: NIImporter_OpenStreetMap.cpp:126
NIImporter_OpenStreetMap::RelationHandler::myOSMEdges
const std::map< long long int, Edge * > & myOSMEdges
The previously parsed edges.
Definition: NIImporter_OpenStreetMap.h:517
NIImporter_OpenStreetMap::RelationHandler::myEndElement
void myEndElement(int element) override
Called when a closing tag occurs.
Definition: NIImporter_OpenStreetMap.cpp:1240
SVC_RAIL
vehicle is a not electrified rail
Definition: SUMOVehicleClass.h:189
NIImporter_OpenStreetMap::NIOSMNode::id
const long long int id
The node's id.
Definition: NIImporter_OpenStreetMap.h:92
NIImporter_OpenStreetMap::EdgesHandler::myParentElements
std::vector< int > myParentElements
The element stack.
Definition: NIImporter_OpenStreetMap.h:449
NIImporter_OpenStreetMap::WAY_UNKNOWN
Definition: NIImporter_OpenStreetMap.h:137
NIImporter_OpenStreetMap::RelationHandler::findEdgeRef
NBEdge * findEdgeRef(long long int wayRef, const std::vector< NBEdge * > &candidates) const
try to find the way segment among candidates
Definition: NIImporter_OpenStreetMap.cpp:1430
NIImporter_OpenStreetMap::MAXSPEED_UNGIVEN
static const double MAXSPEED_UNGIVEN
Definition: NIImporter_OpenStreetMap.h:310
NBNodeCont
Container for nodes during the netbuilding process.
Definition: NBNodeCont.h:60
NIImporter_OpenStreetMap::NodesHandler::NodesHandler
NodesHandler(std::map< long long int, NIOSMNode * > &toFill, std::set< NIOSMNode *, CompareNodes > &uniqueNodes, const OptionsCont &cont)
Contructor.
Definition: NIImporter_OpenStreetMap.cpp:594
NBEdge
The representation of a single edge during network building.
Definition: NBEdge.h:86
NIImporter_OpenStreetMap::Edge::myNoLanesForward
int myNoLanesForward
number of lanes in forward direction or 0 if unknown, negative if backwards lanes are meant
Definition: NIImporter_OpenStreetMap.h:180
NIImporter_OpenStreetMap::RelationHandler::RESTRICTION_UNKNOWN
The relation tag was missing.
Definition: NIImporter_OpenStreetMap.h:560
NIImporter_OpenStreetMap::EdgesHandler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs) override
Called on the opening of a tag;.
Definition: NIImporter_OpenStreetMap.cpp:764
NIImporter_OpenStreetMap::RelationHandler::RestrictionType
RestrictionType
whether the only allowed or the only forbidden connection is defined
Definition: NIImporter_OpenStreetMap.h:554
SVC_TRAM
vehicle is a light rail
Definition: SUMOVehicleClass.h:185
NIImporter_OpenStreetMap::NodesHandler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs) override
Called on the opening of a tag;.
Definition: NIImporter_OpenStreetMap.cpp:612
NIImporter_OpenStreetMap::NIOSMNode::operator=
NIOSMNode & operator=(const NIOSMNode &s)=delete
invalidated assignment operator
NIImporter_OpenStreetMap::RelationHandler::myPTRouteType
std::string myPTRouteType
indicates whether current relation is a pt route
Definition: NIImporter_OpenStreetMap.h:605
NIImporter_OpenStreetMap::EdgesHandler::mySpeedMap
std::map< std::string, double > mySpeedMap
A map of non-numeric speed descriptions to their numeric values.
Definition: NIImporter_OpenStreetMap.h:452
NIImporter_OpenStreetMap::RelationHandler::RESTRICTION_NO
The only invalid connection is declared.
Definition: NIImporter_OpenStreetMap.h:558
NBPTLineCont
Definition: NBPTLineCont.h:27
NIImporter_OpenStreetMap::extendRailwayDistances
void extendRailwayDistances(Edge *e, NBTypeCont &tc)
extend kilometrage data for all nodes along railway
Definition: NIImporter_OpenStreetMap.cpp:1768
NIImporter_OpenStreetMap::RelationHandler::myStops
std::vector< long long int > myStops
bus stop references
Definition: NIImporter_OpenStreetMap.h:584
NIImporter_OpenStreetMap::RelationHandler::RelationHandler
RelationHandler(const std::map< long long int, NIOSMNode * > &osmNodes, const std::map< long long int, Edge * > &osmEdges, NBPTStopCont *nbptStopCont, const std::map< long long int, Edge * > &platfromShapes, NBPTLineCont *nbptLineCont, const OptionsCont &oc)
Constructor.
Definition: NIImporter_OpenStreetMap.cpp:1062
SVCPermissions
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
Definition: SUMOVehicleClass.h:219
NIImporter_OpenStreetMap::WAY_BOTH
Definition: NIImporter_OpenStreetMap.h:136
NIImporter_OpenStreetMap::WayType
WayType
Definition: NIImporter_OpenStreetMap.h:132
NIImporter_OpenStreetMap::RelationHandler::NIIPTPlatform::isWay
bool isWay
Definition: NIImporter_OpenStreetMap.h:589
Parameterised.h
NIImporter_OpenStreetMap::Edge::myCyclewayType
WayType myCyclewayType
Information about the kind of cycleway along this road.
Definition: NIImporter_OpenStreetMap.h:188
NIImporter_OpenStreetMap::RelationHandler::myOptionsCont
const OptionsCont & myOptionsCont
the options cont
Definition: NIImporter_OpenStreetMap.h:549
NIImporter_OpenStreetMap::NodesHandler::myOptionsCont
const OptionsCont & myOptionsCont
the options
Definition: NIImporter_OpenStreetMap.h:379
NIImporter_OpenStreetMap::NIOSMNode::permissions
SVCPermissions permissions
type of pt stop
Definition: NIImporter_OpenStreetMap.h:114
NIImporter_OpenStreetMap::RelationHandler::checkEdgeRef
bool checkEdgeRef(long long int ref) const
check whether a referenced way has a corresponding edge
Definition: NIImporter_OpenStreetMap.cpp:1228
NIImporter_OpenStreetMap::RelationHandler::myFromWay
long long int myFromWay
the origination way for the current restriction
Definition: NIImporter_OpenStreetMap.h:538
NIImporter_OpenStreetMap::RelationHandler::myWays
std::vector< long long int > myWays
ways in pt line references
Definition: NIImporter_OpenStreetMap.h:596
NIImporter_OpenStreetMap::insertEdge
int insertEdge(Edge *e, int index, NBNode *from, NBNode *to, const std::vector< long long int > &passed, NBNetBuilder &nb)
Builds an NBEdge.
Definition: NIImporter_OpenStreetMap.cpp:308
NIImporter_OpenStreetMap::RelationHandler::myCurrentRelation
long long int myCurrentRelation
The currently parsed relation.
Definition: NIImporter_OpenStreetMap.h:529
NIImporter_OpenStreetMap::RelationHandler::myViaNode
long long int myViaNode
the via node/way for the current restriction
Definition: NIImporter_OpenStreetMap.h:544
NIImporter_OpenStreetMap::myOSMNodes
std::map< long long int, NIOSMNode * > myOSMNodes
the map from OSM node ids to actual nodes
Definition: NIImporter_OpenStreetMap.h:237
NIImporter_OpenStreetMap::INVALID_ID
static const long long int INVALID_ID
Definition: NIImporter_OpenStreetMap.h:311
NIImporter_OpenStreetMap::myUnusableTypes
std::set< std::string > myUnusableTypes
The compounds types that do not contain known types.
Definition: NIImporter_OpenStreetMap.h:255
NIImporter_OpenStreetMap::interpretDistance
static double interpretDistance(NIOSMNode *node)
read distance value from node and return value in m
Definition: NIImporter_OpenStreetMap.cpp:1834
NIImporter_OpenStreetMap::RelationHandler::myPlatformShapes
const std::map< long long int, Edge * > & myPlatformShapes
The previously parsed platform shapes.
Definition: NIImporter_OpenStreetMap.h:520
NIImporter_OpenStreetMap::WAY_BACKWARD
Definition: NIImporter_OpenStreetMap.h:135
NIImporter_OpenStreetMap::Edge::Edge
Edge(long long int _id)
Definition: NIImporter_OpenStreetMap.h:156
NIImporter_OpenStreetMap::Edge::myParkingType
int myParkingType
Information about road-side parking.
Definition: NIImporter_OpenStreetMap.h:196
NIImporter_OpenStreetMap::NIOSMNode::position
std::string position
kilometrage/mileage
Definition: NIImporter_OpenStreetMap.h:116
UtilExceptions.h
NIImporter_OpenStreetMap::EdgesHandler::~EdgesHandler
~EdgesHandler() override
Destructor.
NIImporter_OpenStreetMap::EdgesHandler::myEndElement
void myEndElement(int element) override
Called when a closing tag occurs.
Definition: NIImporter_OpenStreetMap.cpp:1045
OptionsCont
A storage for options typed value containers)
Definition: OptionsCont.h:90
NIImporter_OpenStreetMap::RelationHandler::myInterval
int myInterval
service interval of the pt line in minutes
Definition: NIImporter_OpenStreetMap.h:614
NIImporter_OpenStreetMap::WAY_FORWARD
Definition: NIImporter_OpenStreetMap.h:134
NIImporter_OpenStreetMap::NodesHandler::operator=
NodesHandler & operator=(const NodesHandler &s)
invalidated assignment operator
NIImporter_OpenStreetMap::NIImporter_OpenStreetMap
NIImporter_OpenStreetMap()
NIImporter_OpenStreetMap::NIOSMNode::positionMeters
double positionMeters
position converted to m (using highest precision available)
Definition: NIImporter_OpenStreetMap.h:118
NIImporter_OpenStreetMap::Edge::myMaxSpeed
double myMaxSpeed
maximum speed in km/h, or MAXSPEED_UNGIVEN
Definition: NIImporter_OpenStreetMap.h:182
NIImporter_OpenStreetMap::myUniqueNodes
std::set< NIOSMNode *, CompareNodes > myUniqueNodes
the set of unique nodes used in NodesHandler, used when freeing memory
Definition: NIImporter_OpenStreetMap.h:245
NIImporter_OpenStreetMap::PARKING_LEFT
Definition: NIImporter_OpenStreetMap.h:142
NIImporter_OpenStreetMap::EdgesHandler::myPlatformShapesMap
std::map< long long int, Edge * > & myPlatformShapesMap
A map of built edges.
Definition: NIImporter_OpenStreetMap.h:443
NIImporter_OpenStreetMap::Edge::ref
std::string ref
The edge's track name.
Definition: NIImporter_OpenStreetMap.h:176
NIImporter_OpenStreetMap::RelationHandler::myIsRoute
bool myIsRoute
indicates whether current relation is a route
Definition: NIImporter_OpenStreetMap.h:602
NIImporter_OpenStreetMap::EdgesHandler::myOSMNodes
const std::map< long long int, NIOSMNode * > & myOSMNodes
The previously parsed nodes.
Definition: NIImporter_OpenStreetMap.h:437
NIImporter_OpenStreetMap::RelationHandler::myIsRestriction
bool myIsRestriction
whether the currently parsed relation is a restriction
Definition: NIImporter_OpenStreetMap.h:535
NIImporter_OpenStreetMap::CompareEdges
Functor which compares two Edges.
Definition: NIImporter_OpenStreetMap.cpp:71
NIImporter_OpenStreetMap::RelationHandler
A class which extracts relevant relation information from a parsed OSM-file.
Definition: NIImporter_OpenStreetMap.h:471
NIImporter_OpenStreetMap::compoundTypeSeparator
static const std::string compoundTypeSeparator
The separator within newly created compound type names.
Definition: NIImporter_OpenStreetMap.h:235
NIImporter_OpenStreetMap::Edge::mySidewalkType
WayType mySidewalkType
Information about the kind of sidwalk along this road.
Definition: NIImporter_OpenStreetMap.h:192
NIImporter_OpenStreetMap::EdgesHandler::myAllAttributes
bool myAllAttributes
whether additional way attributes shall be added to the edge
Definition: NIImporter_OpenStreetMap.h:455
NIImporter_OpenStreetMap::myPlatformShapes
std::map< long long int, Edge * > myPlatformShapes
the map from OSM way ids to platform shapes
Definition: NIImporter_OpenStreetMap.h:252
NIImporter_OpenStreetMap::NIOSMNode::ptStopPosition
bool ptStopPosition
Whether this is a public transport stop position.
Definition: NIImporter_OpenStreetMap.h:108
NIImporter_OpenStreetMap::RelationHandler::applyRestriction
bool applyRestriction() const
try to apply the parsed restriction and return whether successful
Definition: NIImporter_OpenStreetMap.cpp:1398
NIImporter_OpenStreetMap::PARKING_BOTH
Definition: NIImporter_OpenStreetMap.h:144
NIImporter_OpenStreetMap::Edge::myLayer
int myLayer
Information about the relative z-ordering of ways.
Definition: NIImporter_OpenStreetMap.h:198
NIImporter_OpenStreetMap::RelationHandler::myParentElements
std::vector< int > myParentElements
The element stack.
Definition: NIImporter_OpenStreetMap.h:532
NIImporter_OpenStreetMap::usableType
std::string usableType(const std::string &type, const std::string &id, NBTypeCont &tc)
check whether the type is known or consists of known type compounds. return empty string otherwise
Definition: NIImporter_OpenStreetMap.cpp:1674
NIImporter_OpenStreetMap::Edge::myNoLanes
int myNoLanes
number of lanes, or -1 if unknown
Definition: NIImporter_OpenStreetMap.h:178
NIImporter_OpenStreetMap::RelationHandler::myNBPTLineCont
NBPTLineCont * myNBPTLineCont
PT Line container to be filled.
Definition: NIImporter_OpenStreetMap.h:526
NIImporter_OpenStreetMap::RelationHandler::NIIPTPlatform::ref
long long int ref
Definition: NIImporter_OpenStreetMap.h:588
NBTypeCont
A storage for available types of edges.
Definition: NBTypeCont.h:55
NIImporter_OpenStreetMap::NIOSMNode::node
NBNode * node
the NBNode that was instantiated
Definition: NIImporter_OpenStreetMap.h:120
NIImporter_OpenStreetMap::Edge::myCurrentIsPlatform
bool myCurrentIsPlatform
Information whether this is a pt platform.
Definition: NIImporter_OpenStreetMap.h:204
NIImporter_OpenStreetMap::Edge::myHighWayType
std::string myHighWayType
The type, stored in "highway" key.
Definition: NIImporter_OpenStreetMap.h:184
NIImporter_OpenStreetMap::EdgesHandler::myEdgeMap
std::map< long long int, Edge * > & myEdgeMap
A map of built edges.
Definition: NIImporter_OpenStreetMap.h:440
NIImporter_OpenStreetMap::Edge::myCurrentIsRoad
bool myCurrentIsRoad
Information whether this is a road.
Definition: NIImporter_OpenStreetMap.h:202
NIImporter_OpenStreetMap::EdgesHandler
A class which extracts OSM-edges from a parsed OSM-file.
Definition: NIImporter_OpenStreetMap.h:396
NIImporter_OpenStreetMap::NIOSMNode::railwaySignal
bool railwaySignal
Whether this is a railway (main) signal.
Definition: NIImporter_OpenStreetMap.h:104
config.h
NIImporter_OpenStreetMap
Importer for networks stored in OpenStreetMap format.
Definition: NIImporter_OpenStreetMap.h:59
NIImporter_OpenStreetMap::EdgesHandler::EdgesHandler
EdgesHandler(const std::map< long long int, NIOSMNode * > &osmNodes, std::map< long long int, Edge * > &toFill, std::map< long long int, Edge * > &platformShapes)
Constructor.
Definition: NIImporter_OpenStreetMap.cpp:743
SVC_BUS
vehicle is a bus
Definition: SUMOVehicleClass.h:166
NIImporter_OpenStreetMap::NodesHandler::myEndElement
void myEndElement(int element) override
Called when a closing tag occurs.
Definition: NIImporter_OpenStreetMap.cpp:732
NIImporter_OpenStreetMap::NodesHandler::myToFill
std::map< long long int, NIOSMNode * > & myToFill
The nodes container to fill.
Definition: NIImporter_OpenStreetMap.h:361
NIImporter_OpenStreetMap::~NIImporter_OpenStreetMap
~NIImporter_OpenStreetMap()
Definition: NIImporter_OpenStreetMap.cpp:110
NIImporter_OpenStreetMap::RelationHandler::myToWay
long long int myToWay
the destination way for the current restriction
Definition: NIImporter_OpenStreetMap.h:541
NIImporter_OpenStreetMap::NIOSMNode::lat
const double lat
The latitude the node is located at.
Definition: NIImporter_OpenStreetMap.h:96
NIImporter_OpenStreetMap::Edge::operator=
Edge & operator=(const Edge &s)=delete
invalidated assignment operator
NIImporter_OpenStreetMap::NodesHandler::myImportElevation
const bool myImportElevation
whether elevation data should be imported
Definition: NIImporter_OpenStreetMap.h:376
NBNode
Represents a single node (junction) during network building.
Definition: NBNode.h:68
NIImporter_OpenStreetMap::NodesHandler::~NodesHandler
~NodesHandler() override
Destructor.
NIImporter_OpenStreetMap::RelationHandler::NIIPTPlatform
Definition: NIImporter_OpenStreetMap.h:587
NIImporter_OpenStreetMap::EdgesHandler::operator=
EdgesHandler & operator=(const EdgesHandler &s)
invalidated assignment operator
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:57
NIImporter_OpenStreetMap::NodesHandler::myLastNodeID
long long int myLastNodeID
ID of the currently parsed node, for reporting mainly.
Definition: NIImporter_OpenStreetMap.h:364
NIImporter_OpenStreetMap::NIOSMNode::lon
const double lon
The longitude the node is located at.
Definition: NIImporter_OpenStreetMap.h:94
NIImporter_OpenStreetMap::Edge::myRailDirection
WayType myRailDirection
Information about the direction(s) of railway usage.
Definition: NIImporter_OpenStreetMap.h:194
NIImporter_OpenStreetMap::getNeighboringNodes
std::map< NBNode *, std::pair< double, double > > getNeighboringNodes(NBNode *node, double maxDist, const std::set< NBNode * > &knownElevation)
collect neighboring nodes with their road distance and maximum between-speed. Search does not continu...
Definition: NIImporter_OpenStreetMap.cpp:1635
NIImporter_OpenStreetMap::RelationHandler::myIsStopArea
bool myIsStopArea
indicates whether current relation is a pt stop area
Definition: NIImporter_OpenStreetMap.h:599
NIImporter_OpenStreetMap::PARKING_UNKNOWN
Definition: NIImporter_OpenStreetMap.h:145
NIImporter_OpenStreetMap::PARKING_FORBIDDEN
Definition: NIImporter_OpenStreetMap.h:146
NIImporter_OpenStreetMap::myEdges
std::map< long long int, Edge * > myEdges
the map from OSM way ids to edge objects
Definition: NIImporter_OpenStreetMap.h:249
NIImporter_OpenStreetMap::NodesHandler::myUniqueNodes
std::set< NIOSMNode *, CompareNodes > & myUniqueNodes
the set of unique nodes (used for duplicate detection/substitution)
Definition: NIImporter_OpenStreetMap.h:373
NIImporter_OpenStreetMap::Edge::streetName
std::string streetName
The edge's street name.
Definition: NIImporter_OpenStreetMap.h:174
NIImporter_OpenStreetMap::RelationHandler::myViaWay
long long int myViaWay
Definition: NIImporter_OpenStreetMap.h:545