![]() |
Eclipse SUMO - Simulation of Urban MObility
|
A reader of pois and polygons stored in OSM-format. More...
#include <PCLoaderOSM.h>
Data Structures | |
class | EdgesHandler |
A class which extracts OSM-edges from a parsed OSM-file. More... | |
class | NodesHandler |
A class which extracts OSM-nodes from a parsed OSM-file. More... | |
struct | PCOSMEdge |
An internal definition of a loaded edge. More... | |
struct | PCOSMNode |
An internal representation of an OSM-node. More... | |
struct | PCOSMRelation |
An internal definition of a loaded relation. More... | |
class | RelationsHandler |
A class which extracts relevant way-ids from relations in a parsed OSM-file. More... | |
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... | |
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... | |
Static Public Member Functions | |
static void | loadIfSet (OptionsCont &oc, PCPolyContainer &toFill, PCTypeMap &tm) |
Loads pois/polygons assumed to be stored as OSM-XML. More... | |
Protected Types | |
typedef std::map< long long int, PCOSMEdge * > | EdgeMap |
typedef std::vector< PCOSMRelation * > | Relations |
typedef std::map< long long int, PCOSMRelation * > | RelationsMap |
Static Protected Member Functions | |
static int | addPOI (const PCOSMNode *node, const Position &pos, const PCTypeMap::TypeDef &def, const std::string &fullType, int index, bool useName, PCPolyContainer &toFill, bool ignorePruning, bool withAttributes) |
try add the POI and return the next index on success More... | |
static int | addPolygon (const PCOSMEdge *edge, const PositionVector &vec, const PCTypeMap::TypeDef &def, const std::string &fullType, int index, bool useName, PCPolyContainer &toFill, bool ignorePruning, bool withAttributes) |
try add the polygon and return the next index on success More... | |
Static Protected Attributes | |
static const std::set< std::string > | MyKeysToInclude |
Static Private Member Functions | |
static Position | convertNodePosition (PCOSMNode *n) |
retrieve cartesian coordinate for given node More... | |
static std::set< std::string > | initMyKeysToInclude () |
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... | |
std::string | buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception) |
Builds an error message. More... | |
virtual void | myStartElement (int element, const SUMOSAXAttributes &attrs) |
Callback method for an opening tag to implement by derived classes. More... | |
virtual void | myCharacters (int element, const std::string &chars) |
Callback method for characters to implement by derived classes. More... | |
virtual void | myEndElement (int element) |
Callback method for a closing tag to implement by derived classes. More... | |
void | setSchemaSeen (const bool schemaSeen=true) |
XMLCh * | convert (const std::string &name) const |
converts from c++-string into unicode More... | |
int | convertTag (const std::string &tag) const |
Converts a tag from its string into its numerical representation. More... | |
attributes parsing | |
typedef std::map< int, XMLCh * > | AttrMap |
AttrMap | myPredefinedTags |
std::map< int, std::string > | myPredefinedTagsMML |
the map from ids to their string representation More... | |
elements parsing | |
typedef std::map< std::string, int > | TagMap |
TagMap | myTagMap |
std::vector< std::string > | myCharactersVector |
A list of character strings obtained so far to build the complete characters string at the end. More... | |
GenericSAXHandler * | myParentHandler |
The handler to give control back to. More... | |
int | myParentIndicator |
The tag indicating that control should be given back. More... | |
std::string | myFileName |
The name of the currently parsed file. More... | |
std::string | myExpectedRoot |
The root element to expect, empty string disables the check. More... | |
bool | mySchemaSeen |
whether the reader has already seen a schema More... | |
A reader of pois and polygons stored in OSM-format.
Reads pois stored as XML definition as given by the OpenStreetMap-API.
Definition at line 50 of file PCLoaderOSM.h.
|
privateinherited |
Definition at line 286 of file GenericSAXHandler.h.
|
protected |
Definition at line 120 of file PCLoaderOSM.h.
|
protected |
Definition at line 118 of file PCLoaderOSM.h.
|
protected |
Definition at line 119 of file PCLoaderOSM.h.
|
privateinherited |
Definition at line 300 of file GenericSAXHandler.h.
|
staticprotected |
try add the POI and return the next index on success
Definition at line 377 of file PCLoaderOSM.cpp.
References PCPolyContainer::add(), PCTypeMap::TypeDef::color, PCTypeMap::TypeDef::discard, StringUtils::escapeXML(), OptionsCont::getOptions(), PCTypeMap::TypeDef::id, PCLoaderOSM::PCOSMNode::id, PCTypeMap::TypeDef::layer, PCLoaderOSM::PCOSMNode::myAttributes, PCLoaderOSM::PCOSMNode::name, PCTypeMap::TypeDef::prefix, toString(), and Parameterised::updateParameter().
Referenced by loadIfSet().
|
staticprotected |
try add the polygon and return the next index on success
Definition at line 353 of file PCLoaderOSM.cpp.
References PCPolyContainer::add(), PCTypeMap::TypeDef::allowFill, PCTypeMap::TypeDef::color, PCTypeMap::TypeDef::discard, StringUtils::escapeXML(), OptionsCont::getOptions(), PCTypeMap::TypeDef::id, PCLoaderOSM::PCOSMEdge::id, PCTypeMap::TypeDef::layer, PCLoaderOSM::PCOSMEdge::myAttributes, PCLoaderOSM::PCOSMEdge::name, PCTypeMap::TypeDef::prefix, toString(), and Parameterised::updateParameter().
Referenced by loadIfSet().
|
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().
|
privateinherited |
converts from c++-string into unicode
[in] | name | The string to convert |
Definition at line 81 of file GenericSAXHandler.cpp.
Referenced by GenericSAXHandler::GenericSAXHandler().
retrieve cartesian coordinate for given node
Definition at line 345 of file PCLoaderOSM.cpp.
References GeoConvHelper::getProcessing(), PCLoaderOSM::PCOSMNode::lat, PCLoaderOSM::PCOSMNode::lon, and GeoConvHelper::x2cartesian().
Referenced by loadIfSet().
|
privateinherited |
Converts a tag from its string into its numerical representation.
Returns the enum-representation stored for the given tag. If the tag is not known, SUMO_TAG_NOTHING is returned.
[in] | tag | The string to convert |
Definition at line 177 of file GenericSAXHandler.cpp.
References GenericSAXHandler::myTagMap, and SUMO_TAG_NOTHING.
Referenced by GenericSAXHandler::endElement(), and GenericSAXHandler::startElement().
|
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().
|
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().
|
staticprivate |
Definition at line 59 of file PCLoaderOSM.cpp.
|
static |
Loads pois/polygons assumed to be stored as OSM-XML.
If the option "osm-files" is set within the given options container, an instance of PCLoaderOSM is built and used as a handler for the files given in this option.
[in] | oc | The options container to get further options from |
[in] | toFill | The poly/pois container to add loaded polys/pois to |
[in] | tm | The type map to use for setting values of loaded polys/pois |
ProcessError | if something fails |
Definition at line 91 of file PCLoaderOSM.cpp.
References addPOI(), addPolygon(), convertNodePosition(), PCTypeMap::TypeDef::discard, Position::distanceTo2D(), PCTypeMap::get(), OptionsCont::getBool(), SysUtils::getCurrentMillis(), PCTypeMap::getDefault(), MsgHandler::getErrorInstance(), OptionsCont::getFloat(), OptionsCont::getOptions(), GeoConvHelper::getProcessing(), OptionsCont::getStringVector(), MsgHandler::getWarningInstance(), PCTypeMap::has(), PCLoaderOSM::PCOSMNode::id, PCLoaderOSM::PCOSMEdge::id, Position::INVALID, OptionsCont::isInStringVector(), FileHelpers::isReadable(), OptionsCont::isSet(), PCLoaderOSM::PCOSMNode::lat, PCLoaderOSM::PCOSMNode::lon, PCLoaderOSM::PCOSMNode::myAttributes, PCLoaderOSM::PCOSMEdge::myAttributes, PCLoaderOSM::PCOSMEdge::myCurrentNodes, PCLoaderOSM::PCOSMEdge::myIsClosed, MyKeysToInclude, PCLoaderOSM::PCOSMEdge::name, PROGRESS_BEGIN_MESSAGE, PROGRESS_TIME_MESSAGE, PositionVector::push_back_noDoublePos(), XMLSubSys::runParser(), PCLoaderOSM::PCOSMEdge::standalone, toString(), WRITE_ERROR, WRITE_MESSAGE, and WRITE_WARNING.
Referenced by main().
|
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 @exceptions 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().
|
protectedvirtualinherited |
Callback method for a closing tag to implement by derived classes.
Called by "endElement" (see there).
[in] | element | The closed element, given as a int @exceptions ProcessError These method may throw a ProcessError if something fails |
Reimplemented in SAXWeightsHandler, NIImporter_OpenStreetMap::RelationHandler, NIImporter_OpenStreetMap::EdgesHandler, NIImporter_OpenStreetMap::NodesHandler, NIImporter_OpenDrive, NIImporter_Vissim::NIVissimXMLHandler_Routenentscheidungsdefinition, NIImporter_Vissim::NIVissimXMLHandler_Geschwindigkeitsverteilungsdefinition, PCLoaderOSM::EdgesHandler, NIImporter_Vissim::NIVissimXMLHandler_VWunschentscheidungsdefinition, PCLoaderOSM::RelationsHandler, NIImporter_Vissim::NIVissimXMLHandler_Fahrzeugklassendefinition, MSTriggeredRerouter, PCLoaderOSM::NodesHandler, NLHandler, MSCalibrator, NIImporter_ITSUMO::Handler, MSLaneSpeedTrigger, NIImporter_SUMO, NIImporter_Vissim::NIVissimXMLHandler_Streckendefinition, NIXMLEdgesHandler, NIXMLNodesHandler, NIXMLPTHandler, GNEAdditionalHandler, ODDistrictHandler, SUMORouteHandler, ShapeHandler, RONetHandler, MSStateHandler, NIXMLTrafficLightsHandler, GUITriggeredRerouter, and ROMARouteHandler.
Definition at line 226 of file GenericSAXHandler.cpp.
Referenced by GenericSAXHandler::endElement(), and SUMOSAXReader::parseNext().
|
protectedvirtualinherited |
Callback method for an opening tag to implement by derived classes.
Called by "startElement" (see there).
[in] | element | The element that contains the characters, given as a int |
[in] | attrs | The SAX-attributes, wrapped as SUMOSAXAttributes @exceptions ProcessError These method may throw a ProcessError if something fails |
Reimplemented in NIImporter_OpenStreetMap::RelationHandler, NIImporter_OpenStreetMap::EdgesHandler, NIImporter_OpenStreetMap::NodesHandler, NIImporter_OpenDrive, NIImporter_Vissim::NIVissimXMLHandler_ConflictArea, NIImporter_Vissim::NIVissimXMLHandler_Routenentscheidungsdefinition, GUINet::DiscoverAttributes, NIImporter_Vissim::NIVissimXMLHandler_Geschwindigkeitsverteilungsdefinition, PCLoaderOSM::EdgesHandler, NIImporter_Vissim::NIVissimXMLHandler_VWunschentscheidungsdefinition, NIImporter_Vissim::NIVissimXMLHandler_Fahrzeugklassendefinition, PCLoaderOSM::RelationsHandler, GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler, NIImporter_Vissim::NIVissimXMLHandler_Parkplatzdefinition, MSTriggeredRerouter, PCLoaderOSM::NodesHandler, SAXWeightsHandler, NIImporter_Vissim::NIVissimXMLHandler_Zuflussdefinition, NIImporter_MATSim::EdgesHandler, NLHandler, MSCalibrator, NIImporter_Vissim::NIVissimXMLHandler_Streckendefinition, MSLaneSpeedTrigger, NIImporter_SUMO, NIImporter_MATSim::NodesHandler, NIImporter_ITSUMO::Handler, PCLoaderXML, NIXMLEdgesHandler, NIXMLNodesHandler, TrajectoriesHandler, GNEAdditionalHandler, NIXMLPTHandler, PCNetProjectionLoader, RORouteHandler, SUMORouteHandler, ROJTRTurnDefLoader, ODDistrictHandler, ShapeHandler, MSRouteHandler, RONetHandler, MSStateHandler, NIXMLConnectionsHandler, ODAmitranHandler, NIXMLTrafficLightsHandler, NIXMLTypesHandler, PCTypeDefHandler, AGActivityGenHandler, GUISettingsHandler, ROMARouteHandler, and RODFDetectorHandler.
Definition at line 218 of file GenericSAXHandler.cpp.
Referenced by SUMOSAXReader::parseNext(), and GenericSAXHandler::startElement().
|
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().
|
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::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.
|
privateinherited |
A list of character strings obtained so far to build the complete characters string at the end.
Definition at line 307 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::characters(), GenericSAXHandler::endElement(), and GenericSAXHandler::startElement().
|
privateinherited |
The root element to expect, empty string disables the check.
Definition at line 319 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::startElement().
|
privateinherited |
The name of the currently parsed file.
Definition at line 316 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::getFileName(), and GenericSAXHandler::setFileName().
|
staticprotected |
Definition at line 133 of file PCLoaderOSM.h.
Referenced by loadIfSet(), PCLoaderOSM::RelationsHandler::myStartElement(), and PCLoaderOSM::EdgesHandler::myStartElement().
|
privateinherited |
The handler to give control back to.
Definition at line 310 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::endElement(), and GenericSAXHandler::registerParent().
|
privateinherited |
The tag indicating that control should be given back.
Definition at line 313 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::endElement(), and GenericSAXHandler::registerParent().
|
privateinherited |
Definition at line 289 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::GenericSAXHandler(), GenericSAXHandler::startElement(), and GenericSAXHandler::~GenericSAXHandler().
|
privateinherited |
the map from ids to their string representation
Definition at line 292 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::GenericSAXHandler(), SUMOSAXReader::parseNext(), and GenericSAXHandler::startElement().
|
privateinherited |
whether the reader has already seen a schema
Definition at line 322 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::setSchemaSeen(), and GenericSAXHandler::startElement().
|
privateinherited |
Definition at line 303 of file GenericSAXHandler.h.
Referenced by GenericSAXHandler::convertTag(), and GenericSAXHandler::GenericSAXHandler().