![]() |
Eclipse SUMO - Simulation of Urban MObility
|
A class which extracts relevant relation information from a parsed OSM-file. More...
#include <NIImporter_OpenStreetMap.h>
Data Structures | |
struct | NIIPTPlatform |
Public Member Functions | |
void | characters (const XMLCh *const chars, const XERCES3_SIZE_t length) |
The inherited method called when characters occurred. More... | |
void | endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) |
The inherited method called when a tag is being closed. More... | |
const std::string & | getFileName () const |
returns the current file name More... | |
void | registerParent (const int tag, GenericSAXHandler *handler) |
Assigning a parent handler which is enabled when the specified tag is closed. More... | |
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. More... | |
void | setFileName (const std::string &name) |
Sets the current file name. More... | |
void | startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs) |
The inherited method called when a new tag opens. More... | |
~RelationHandler () override | |
Destructor. More... | |
SAX ErrorHandler callbacks | |
void | warning (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-warnings. More... | |
void | error (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-errors. More... | |
void | fatalError (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Handler for XML-errors. More... | |
Protected Member Functions | |
std::string | buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Builds an error message. More... | |
virtual void | myCharacters (int element, const std::string &chars) |
Callback method for characters to implement by derived classes. More... | |
void | setSchemaSeen (const bool schemaSeen=true) |
inherited from GenericSAXHandler | |
void | myStartElement (int element, const SUMOSAXAttributes &attrs) override |
Called on the opening of a tag;. More... | |
void | myEndElement (int element) override |
Called when a closing tag occurs. More... | |
Private Types | |
enum | RestrictionType { RESTRICTION_ONLY, RESTRICTION_NO, RESTRICTION_UNKNOWN } |
whether the only allowed or the only forbidden connection is defined More... | |
Private Member Functions | |
bool | applyRestriction () const |
try to apply the parsed restriction and return whether successful More... | |
bool | checkEdgeRef (long long int ref) const |
check whether a referenced way has a corresponding edge More... | |
NBEdge * | findEdgeRef (long long int wayRef, const std::vector< NBEdge *> &candidates) const |
try to find the way segment among candidates More... | |
RelationHandler & | operator= (const RelationHandler &s) |
invalidated assignment operator More... | |
RelationHandler (const RelationHandler &s) | |
invalidated copy constructor More... | |
void | resetValues () |
reset members to their defaults for parsing a new relation More... | |
Private Attributes | |
long long int | myCurrentRelation |
The currently parsed relation. More... | |
long long int | myFromWay |
the origination way for the current restriction More... | |
int | myInterval |
service interval of the pt line in minutes More... | |
bool | myIsRestriction |
whether the currently parsed relation is a restriction More... | |
bool | myIsRoute |
indicates whether current relation is a route More... | |
bool | myIsStopArea |
indicates whether current relation is a pt stop area More... | |
std::string | myName |
name of the relation More... | |
NBPTLineCont * | myNBPTLineCont |
PT Line container to be filled. More... | |
NBPTStopCont * | myNBPTStopCont |
The previously filled pt stop container. More... | |
std::string | myNightService |
night service information of the pt line More... | |
const OptionsCont & | myOptionsCont |
the options cont More... | |
const std::map< long long int, Edge * > & | myOSMEdges |
The previously parsed edges. More... | |
const std::map< long long int, NIOSMNode * > & | myOSMNodes |
The previously parsed nodes. More... | |
std::vector< int > | myParentElements |
The element stack. More... | |
std::vector< NIIPTPlatform > | myPlatforms |
bus stop platforms More... | |
const std::map< long long int, Edge * > & | myPlatformShapes |
The previously parsed platform shapes. More... | |
std::string | myPTRouteType |
indicates whether current relation is a pt route More... | |
std::string | myRef |
ref of the pt line More... | |
RestrictionType | myRestrictionType |
std::vector< long long int > | myStops |
bus stop references More... | |
long long int | myToWay |
the destination way for the current restriction More... | |
long long int | myViaNode |
the via node/way for the current restriction More... | |
long long int | myViaWay |
std::vector< long long int > | myWays |
ways in pt line references More... | |
A class which extracts relevant relation information from a parsed OSM-file.
Definition at line 471 of file NIImporter_OpenStreetMap.h.
whether the only allowed or the only forbidden connection is defined
Enumerator | |
---|---|
RESTRICTION_ONLY | The only valid connection is declared. |
RESTRICTION_NO | The only invalid connection is declared. |
RESTRICTION_UNKNOWN | The relation tag was missing. |
Definition at line 554 of file NIImporter_OpenStreetMap.h.
NIImporter_OpenStreetMap::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.
[in] | osmNodes | The previously parsed OSM-nodes |
[in] | osmEdges | The previously parse OSM-edges |
Definition at line 1062 of file NIImporter_OpenStreetMap.cpp.
References resetValues(), and ~RelationHandler().
|
overridedefault |
Destructor.
Referenced by RelationHandler().
|
private |
invalidated copy constructor
|
private |
try to apply the parsed restriction and return whether successful
Definition at line 1398 of file NIImporter_OpenStreetMap.cpp.
References NBEdge::addEdge2EdgeConnection(), findEdgeRef(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), NIImporter_OpenStreetMap::INVALID_ID, myFromWay, myOSMNodes, myRestrictionType, myToWay, myViaNode, NBEdge::removeFromConnections(), RESTRICTION_ONLY, toString(), and WRITE_WARNING.
Referenced by myEndElement().
|
protectedinherited |
Builds an error message.
The error message includes the file name and the line/column information as supported by the given SAXParseException
[in] | exception | The name of the currently processed file |
Definition at line 187 of file GenericSAXHandler.cpp.
References GenericSAXHandler::getFileName(), and transcode().
Referenced by GenericSAXHandler::error(), GenericSAXHandler::fatalError(), and GenericSAXHandler::warning().
|
inherited |
The inherited method called when characters occurred.
The retrieved characters are converted into a string and appended into a private buffer. They are reported as soon as the element ends.
recheck/describe what happens with characters when a new element is opened
describe characters processing in the class' head
Definition at line 170 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myCharactersVector, and StringUtils::transcode().
|
private |
check whether a referenced way has a corresponding edge
Definition at line 1228 of file NIImporter_OpenStreetMap.cpp.
References myCurrentRelation, myOSMEdges, toString(), and WRITE_WARNING.
Referenced by myStartElement().
|
inherited |
The inherited method called when a tag is being closed.
This method calls the user-implemented methods myCharacters with the previously collected and converted characters.
Then, myEndElement is called, supplying it the qname converted to its enum- and string-representations.
recheck/describe encoding of the string-representation
do not generate and report the string-representation
Definition at line 121 of file GenericSAXHandler.cpp.
References GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, SUMO_TAG_NOTHING, and StringUtils::transcode().
|
inherited |
Handler for XML-errors.
The message is built using buildErrorMessage and thrown within a ProcessError.
[in] | exception | The occurred exception to process |
ProcessError | On any call |
Definition at line 206 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
Referenced by MSRouteHandler::addFlowPerson(), MSRouteHandler::closeContainer(), MSRouteHandler::closePerson(), MSRouteHandler::closePersonFlow(), NIImporter_OpenDrive::geomFromSpiral(), and MSRouteHandler::myStartElement().
|
inherited |
Handler for XML-errors.
The message is built using buildErrorMessage and thrown within a ProcessError.
ProcessError | On any call |
[in] | exception | The occurred exception to process |
Definition at line 212 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage().
|
private |
try to find the way segment among candidates
Definition at line 1430 of file NIImporter_OpenStreetMap.cpp.
References toString(), and WRITE_WARNING.
Referenced by applyRestriction().
|
inherited |
returns the current file name
Definition at line 75 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myFileName.
Referenced by NLHandler::addE1Detector(), NLHandler::addE2Detector(), NLHandler::addEdgeLaneMeanData(), NLHandler::addInstantE1Detector(), ShapeHandler::addPOI(), ShapeHandler::addPoly(), NLHandler::addRouteProbeDetector(), NLHandler::addVTypeProbeDetector(), NLHandler::beginE3Detector(), GenericSAXHandler::buildErrorMessage(), PCNetProjectionLoader::load(), NILoader::loadXMLType(), NLHandler::myEndElement(), RODFDetectorHandler::myStartElement(), GUISettingsHandler::myStartElement(), SUMORouteHandler::myStartElement(), NLHandler::myStartElement(), NIImporter_OpenDrive::myStartElement(), GNEAdditionalHandler::parseAndBuildPOI(), GNEAdditionalHandler::parseAndBuildPoly(), XMLSubSys::runParser(), GenericSAXHandler::startElement(), and SUMORouteLoader::SUMORouteLoader().
|
protectedvirtualinherited |
Callback method for characters to implement by derived classes.
Called by "endElement" (see there).
[in] | element | The opened element, given as a int |
[in] | chars | The complete embedded character string ProcessError These method may throw a ProcessError if something fails |
Reimplemented in NIImporter_OpenDrive, and NIImporter_ITSUMO::Handler.
Definition at line 222 of file GenericSAXHandler.cpp.
Referenced by GenericSAXHandler::endElement().
|
overrideprotectedvirtual |
Called when a closing tag occurs.
[in] | element | ID of the currently opened element |
ProcessError | If something fails |
Reimplemented from GenericSAXHandler.
Definition at line 1240 of file NIImporter_OpenStreetMap.cpp.
References NBPTStop::addPlatformCand(), NBPTLine::addPTStop(), NBPTLine::addWayNode(), applyRestriction(), NIImporter_OpenStreetMap::NIOSMNode::ele, NBPTStopCont::get(), OptionsCont::getFloat(), NBPTLine::getLineID(), NBPTLineCont::getLines(), OptionsCont::getOptions(), NBPTLine::getStops(), NIImporter_OpenStreetMap::NIOSMNode::id, NBPTLineCont::insert(), NIImporter_OpenStreetMap::INVALID_ID, OptionsCont::isSet(), NIImporter_OpenStreetMap::NIOSMNode::lat, PositionVector::length(), NIImporter_OpenStreetMap::NIOSMNode::lon, NIImporter_OpenStreetMap::Edge::myCurrentNodes, myCurrentRelation, myFromWay, myInterval, myIsRestriction, myIsRoute, myIsStopArea, myName, myNBPTLineCont, myNBPTStopCont, myNightService, myOptionsCont, myOSMEdges, myOSMNodes, myParentElements, myPlatforms, myPlatformShapes, myPTRouteType, myRef, myRestrictionType, myStops, myToWay, myViaNode, myViaWay, myWays, resetValues(), RESTRICTION_UNKNOWN, NBPTStop::setIsMultipleStopPositions(), NBPTLine::setMyNumOfStops(), SUMO_TAG_RELATION, toString(), NBNetBuilder::transformCoordinate(), WRITE_ERROR, and WRITE_WARNING.
|
overrideprotectedvirtual |
Called on the opening of a tag;.
[in] | element | ID of the currently opened element |
[in] | attrs | Attributes within the currently opened element |
ProcessError | If something fails |
Reimplemented from GenericSAXHandler.
Definition at line 1099 of file NIImporter_OpenStreetMap.cpp.
References checkEdgeRef(), SUMOSAXAttributes::get(), SUMOSAXAttributes::getStringSecure(), SUMOSAXAttributes::hasAttribute(), NIImporter_OpenStreetMap::INVALID_ID, NIImporter_OpenStreetMap::RelationHandler::NIIPTPlatform::isWay, myCurrentRelation, myFromWay, myInterval, myIsRestriction, myIsRoute, myIsStopArea, myName, myNightService, myOSMNodes, myParentElements, myPlatforms, myPlatformShapes, myPTRouteType, myRef, myRestrictionType, myStops, myToWay, myViaNode, myViaWay, myWays, NIImporter_OpenStreetMap::RelationHandler::NIIPTPlatform::ref, RESTRICTION_NO, RESTRICTION_ONLY, SUMO_ATTR_ID, SUMO_ATTR_K, SUMO_ATTR_REF, SUMO_ATTR_TYPE, SUMO_ATTR_V, SUMO_TAG_MEMBER, SUMO_TAG_RELATION, SUMO_TAG_TAG, toString(), and WRITE_WARNING.
|
private |
invalidated assignment operator
|
inherited |
Assigning a parent handler which is enabled when the specified tag is closed.
Definition at line 162 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, and XMLSubSys::setHandler().
Referenced by NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().
|
private |
reset members to their defaults for parsing a new relation
Definition at line 1082 of file NIImporter_OpenStreetMap.cpp.
References NIImporter_OpenStreetMap::INVALID_ID, myCurrentRelation, myFromWay, myIsRestriction, myIsRoute, myIsStopArea, myPlatforms, myPTRouteType, myRestrictionType, myStops, myToWay, myViaNode, myViaWay, myWays, and RESTRICTION_UNKNOWN.
Referenced by myEndElement(), and RelationHandler().
|
inherited |
Sets the current file name.
[in] | name | The name of the currently processed file |
Definition at line 69 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myFileName.
Referenced by NIImporter_SUMO::_loadNetwork(), GUISettingsHandler::GUISettingsHandler(), PCNetProjectionLoader::load(), NIImporter_OpenStreetMap::load(), NIImporter_Vissim::load(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), NILoader::loadXMLType(), main(), and XMLSubSys::runParser().
|
inlineprotectedinherited |
Definition at line 255 of file GenericSAXHandler.h.
References GenericSAXHandler::convert(), GenericSAXHandler::convertTag(), and GenericSAXHandler::mySchemaSeen.
Referenced by SUMOSAXReader::LocalSchemaResolver::resolveEntity().
|
inherited |
The inherited method called when a new tag opens.
The method parses the supplied XMLCh*-qname using the internal name/enum-map to obtain the enum representation of the attribute name.
Then, "myStartElement" is called supplying the enumeration value, the string-representation of the name and the attributes.
recheck/describe encoding of the string-representation
do not generate and report the string-representation
Definition at line 94 of file GenericSAXHandler.cpp.
References GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myExpectedRoot, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::mySchemaSeen, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, SUMO_TAG_INCLUDE, and StringUtils::transcode().
|
inherited |
Handler for XML-warnings.
The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.
[in] | exception | The occurred exception to process |
Definition at line 200 of file GenericSAXHandler.cpp.
References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.
|
private |
The currently parsed relation.
Definition at line 529 of file NIImporter_OpenStreetMap.h.
Referenced by checkEdgeRef(), myEndElement(), myStartElement(), and resetValues().
|
private |
the origination way for the current restriction
Definition at line 538 of file NIImporter_OpenStreetMap.h.
Referenced by applyRestriction(), myEndElement(), myStartElement(), and resetValues().
|
private |
service interval of the pt line in minutes
Definition at line 614 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
whether the currently parsed relation is a restriction
Definition at line 535 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
indicates whether current relation is a route
Definition at line 602 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
indicates whether current relation is a pt stop area
Definition at line 599 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
name of the relation
Definition at line 608 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
PT Line container to be filled.
Definition at line 526 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement().
|
private |
The previously filled pt stop container.
Definition at line 523 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement().
|
private |
night service information of the pt line
Definition at line 617 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
the options cont
Definition at line 549 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement().
|
private |
The previously parsed edges.
Definition at line 517 of file NIImporter_OpenStreetMap.h.
Referenced by checkEdgeRef(), and myEndElement().
|
private |
The previously parsed nodes.
Definition at line 514 of file NIImporter_OpenStreetMap.h.
Referenced by applyRestriction(), NIImporter_OpenStreetMap::extendRailwayDistances(), myEndElement(), and myStartElement().
|
private |
The element stack.
Definition at line 532 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
bus stop platforms
Definition at line 593 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
The previously parsed platform shapes.
Definition at line 520 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
indicates whether current relation is a pt route
Definition at line 605 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
ref of the pt line
Definition at line 611 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), and myStartElement().
|
private |
Definition at line 562 of file NIImporter_OpenStreetMap.h.
Referenced by applyRestriction(), myEndElement(), myStartElement(), and resetValues().
|
private |
bus stop references
Definition at line 584 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
the destination way for the current restriction
Definition at line 541 of file NIImporter_OpenStreetMap.h.
Referenced by applyRestriction(), myEndElement(), myStartElement(), and resetValues().
|
private |
the via node/way for the current restriction
Definition at line 544 of file NIImporter_OpenStreetMap.h.
Referenced by applyRestriction(), myEndElement(), myStartElement(), and resetValues().
|
private |
Definition at line 545 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().
|
private |
ways in pt line references
Definition at line 596 of file NIImporter_OpenStreetMap.h.
Referenced by myEndElement(), myStartElement(), and resetValues().