|
SUMO - Simulation of Urban MObility
|
Importer for networks stored in OpenStreetMap format. More...
#include <NIImporter_OpenStreetMap.h>
Data Structures | |
| class | CompareNodes |
| Functor which compares two NIOSMNodes according to their coordinates. More... | |
| struct | Edge |
| An internal definition of a loaded edge. More... | |
| class | EdgesHandler |
| A class which extracts OSM-edges from a parsed OSM-file. More... | |
| struct | NIOSMNode |
| An internal representation of an OSM-node. More... | |
| class | NodesHandler |
| A class which extracts OSM-nodes from a parsed OSM-file. More... | |
| class | SimilarEdge |
| Functor which compares two Edges according to all values but id. More... | |
| class | SubstituteNode |
| A functor to substitute a node in the node list of an Edge. More... | |
Static Public Member Functions | |
| static void | loadNetwork (const OptionsCont &oc, NBNetBuilder &nb) |
| Loads content of the optionally given OSM file. | |
Protected Member Functions | |
| void | _loadNetwork (const OptionsCont &oc, NBNetBuilder &nb) |
| NIImporter_OpenStreetMap () | |
| ~NIImporter_OpenStreetMap () | |
Private Member Functions | |
| void | insertEdge (Edge *e, int index, NBNode *from, NBNode *to, const std::vector< int > &passed, NBEdgeCont &ec, NBTypeCont &tc) |
| Builds an NBEdge. | |
| NBNode * | insertNodeChecking (int id, NBNodeCont &nc, NBTrafficLightLogicCont &tlsc) |
| Builds an NBNode. | |
Private Attributes | |
| std::map< std::string, Edge * > | myEdges |
| std::map< int, NIOSMNode * > | myOSMNodes |
| we are responsible for ultimate cleanup | |
Static Private Attributes | |
| static const std::string | compoundTypeSeparator |
| The separator within newly created compound type names. | |
Importer for networks stored in OpenStreetMap format.
Definition at line 59 of file NIImporter_OpenStreetMap.h.
| NIImporter_OpenStreetMap::NIImporter_OpenStreetMap | ( | ) | [protected] |
Definition at line 169 of file NIImporter_OpenStreetMap.cpp.
| NIImporter_OpenStreetMap::~NIImporter_OpenStreetMap | ( | ) | [protected] |
Definition at line 172 of file NIImporter_OpenStreetMap.cpp.
References myEdges, and myOSMNodes.
| void NIImporter_OpenStreetMap::_loadNetwork | ( | const OptionsCont & | oc, |
| NBNetBuilder & | nb | ||
| ) | [protected] |
Definition at line 185 of file NIImporter_OpenStreetMap.cpp.
References FileHelpers::exists(), NBNetBuilder::getEdgeCont(), NBNetBuilder::getNodeCont(), OptionsCont::getOptions(), OptionsCont::getStringVector(), NBNetBuilder::getTLLogicCont(), NBNetBuilder::getTypeCont(), NBTypeCont::insert(), insertEdge(), insertNodeChecking(), OptionsCont::isSet(), NIImporter_OpenStreetMap::Edge::myCurrentIsRoad, NIImporter_OpenStreetMap::Edge::myCurrentNodes, myEdges, myOSMNodes, PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, XMLSubSys::runParser(), GenericSAXHandler::setFileName(), SUMOReal, SVC_BICYCLE, SVC_BUS, SVC_CITYRAIL, SVC_DELIVERY, SVC_LIGHTRAIL, SVC_PEDESTRIAN, SVC_RAIL_FAST, SVC_UNKNOWN, toString(), NBEdge::UNSPECIFIED_WIDTH, WRITE_ERROR, and WRITE_MESSAGE.
Referenced by loadNetwork().
| void NIImporter_OpenStreetMap::insertEdge | ( | Edge * | e, |
| int | index, | ||
| NBNode * | from, | ||
| NBNode * | to, | ||
| const std::vector< int > & | passed, | ||
| NBEdgeCont & | ec, | ||
| NBTypeCont & | tc | ||
| ) | [private] |
Builds an NBEdge.
| [in] | e | The definition of the edge |
| [in] | index | The index of the edge (in the case it is split along her nodes) |
| [in] | from | The origin node of the edge |
| [in] | to | The destination node of the edge |
| [in] | passed | The list of passed nodes (geometry information) |
| [in] | osmNodes | Container of node definitions for getting information about nodes from |
| [in,out] | The | edge container to add the built edge to |
| [in] | tc | The type container to get information about the edge from |
| ProcessError | If the edge could not be added to the container |
Definition at line 397 of file NIImporter_OpenStreetMap.cpp.
References compoundTypeSeparator, NBTypeCont::getAllowedClasses(), NBTypeCont::getDisallowedClasses(), NBTypeCont::getIsOneWay(), NBTypeCont::getNumLanes(), NBTypeCont::getPriority(), NBTypeCont::getSpeed(), NBTypeCont::getWidth(), StringTokenizer::hasNext(), NIImporter_OpenStreetMap::Edge::id, NBEdgeCont::insert(), NBTypeCont::knows(), LANESPREAD_CENTER, LANESPREAD_RIGHT, NIImporter_OpenStreetMap::NIOSMNode::lat, NIImporter_OpenStreetMap::NIOSMNode::lon, NIImporter_OpenStreetMap::Edge::myHighWayType, NIImporter_OpenStreetMap::Edge::myIsOneWay, NIImporter_OpenStreetMap::Edge::myMaxSpeed, NIImporter_OpenStreetMap::Edge::myNoLanes, myOSMNodes, StringTokenizer::next(), PositionVector::push_back_noDoublePos(), PositionVector::reverse(), NBEdge::setVehicleClasses(), NIImporter_OpenStreetMap::Edge::streetName, SUMOReal, toString(), NILoader::transformCoordinates(), NBEdge::UNSPECIFIED_OFFSET, and WRITE_WARNING.
Referenced by _loadNetwork().
| NBNode * NIImporter_OpenStreetMap::insertNodeChecking | ( | int | id, |
| NBNodeCont & | nc, | ||
| NBTrafficLightLogicCont & | tlsc | ||
| ) | [private] |
Builds an NBNode.
If a node with the given id is already known, nothing is done. Otherwise, the position and other information of the node is retrieved from the given node map, the node is built and added to the given node container. If the node is controlled by a tls, the according tls is built and added to the tls container.
| [in] | id | The id of the node to build |
| [in] | osmNodes | Map of node ids to information about these |
| [in,out] | nc | The node container to add the built node to |
| [in,out] | tlsc | The traffic lights logic container to add the built tls to |
| ProcessError | If the tls could not be added to the container |
Definition at line 365 of file NIImporter_OpenStreetMap.cpp.
References NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NIImporter_OpenStreetMap::NIOSMNode::lat, NIImporter_OpenStreetMap::NIOSMNode::lon, myOSMNodes, NBNodeCont::retrieve(), NIImporter_OpenStreetMap::NIOSMNode::tlsControlled, toString(), NILoader::transformCoordinates(), and WRITE_ERROR.
Referenced by _loadNetwork().
| void NIImporter_OpenStreetMap::loadNetwork | ( | const OptionsCont & | oc, |
| NBNetBuilder & | nb | ||
| ) | [static] |
Loads content of the optionally given OSM file.
If the option "osm-files" is set, the file(s) stored therein is read and the network definition stored therein is stored within the given network builder.
If the option "osm-files" is not set, this method simply returns.
| [in] | oc | The options to use |
| [in,out] | nb | The network builder to fill |
Definition at line 163 of file NIImporter_OpenStreetMap.cpp.
References _loadNetwork().
Referenced by NILoader::load().
const std::string NIImporter_OpenStreetMap::compoundTypeSeparator [static, private] |
The separator within newly created compound type names.
Definition at line 121 of file NIImporter_OpenStreetMap.h.
Referenced by insertEdge(), and NIImporter_OpenStreetMap::EdgesHandler::myStartElement().
std::map<std::string, Edge*> NIImporter_OpenStreetMap::myEdges [private] |
Definition at line 129 of file NIImporter_OpenStreetMap.h.
Referenced by _loadNetwork(), and ~NIImporter_OpenStreetMap().
std::map<int, NIOSMNode*> NIImporter_OpenStreetMap::myOSMNodes [private] |
we are responsible for ultimate cleanup
Definition at line 125 of file NIImporter_OpenStreetMap.h.
Referenced by _loadNetwork(), insertEdge(), insertNodeChecking(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), and ~NIImporter_OpenStreetMap().