48 #ifdef CHECK_MEMORY_LEAKS
50 #endif // CHECK_MEMORY_LEAKS
63 if (oc.
isSet(
"plain-output-prefix")) {
68 if (oc.
isSet(
"junctions.join-output")) {
71 if (oc.
isSet(
"street-sign-output")) {
80 bool useGeo = oc.
exists(
"proj.plain-geo") && oc.
getBool(
"proj.plain-geo");
82 WRITE_WARNING(
"Ignoring option \"proj.plain-geo\" because no geo-conversion has been defined");
88 device.
writeXMLHeader(
"nodes",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/nodes_file.xsd\"");
96 for (std::map<std::string, NBNode*>::const_iterator i = nc.
begin(); i != nc.
end(); ++i) {
118 std::set<std::string> tlsIDs;
119 std::set<std::string> controlledInnerEdges;
120 for (std::set<NBTrafficLightDefinition*>::const_iterator it_tl = tlss.begin(); it_tl != tlss.end(); it_tl++) {
121 tlsIDs.insert((*it_tl)->getID());
122 std::vector<std::string> cie = (*it_tl)->getControlledInnerEdges();
123 controlledInnerEdges.insert(cie.begin(), cie.end());
125 std::vector<std::string> sortedIDs(tlsIDs.begin(), tlsIDs.end());
126 sort(sortedIDs.begin(), sortedIDs.end());
128 if (controlledInnerEdges.size() > 0) {
129 std::vector<std::string> sortedCIEs(controlledInnerEdges.begin(), controlledInnerEdges.end());
130 sort(sortedCIEs.begin(), sortedCIEs.end());
146 bool useGeo = oc.
exists(
"proj.plain-geo") && oc.
getBool(
"proj.plain-geo");
150 edevice.
writeXMLHeader(
"edges",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/edges_file.xsd\"");
152 cdevice.
writeXMLHeader(
"connections",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/connections_file.xsd\"");
153 bool noNames = !oc.
getBool(
"output.street-names");
154 for (std::map<std::string, NBEdge*>::const_iterator i = ec.
begin(); i != ec.
end(); ++i) {
177 for (
int i = 0; i < (
int) geom.size(); i++) {
207 for (
unsigned int i = 0; i < e->
getLanes().size(); ++i) {
230 const std::vector<NBEdge::Connection> connections = e->
getConnections();
231 for (std::vector<NBEdge::Connection>::const_iterator c = connections.begin(); c != connections.end(); ++c) {
234 if (connections.size() > 0) {
240 for (std::map<std::string, NBNode*>::const_iterator i = nc.
begin(); i != nc.
end(); ++i) {
244 for (std::map<std::string, NBNode*>::const_iterator it_node = nc.
begin(); it_node != nc.
end(); ++it_node) {
245 const std::vector<NBNode::Crossing>& crossings = (*it_node).second->getCrossings();
246 for (std::vector<NBNode::Crossing>::const_iterator it = crossings.begin(); it != crossings.end(); it++) {
265 device.
writeXMLHeader(
"tlLogics",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/tllogic_file.xsd\"");
269 for (std::map<std::string, NBEdge*>::const_iterator i = ec.
begin(); i != ec.
end(); ++i) {
272 const std::vector<NBEdge::Connection> connections = e->
getConnections();
273 for (std::vector<NBEdge::Connection>::const_iterator c = connections.begin(); c != connections.end(); ++c) {
286 device.
writeXMLHeader(
"nodes",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/nodes_file.xsd\"");
288 for (std::vector<std::set<std::string> >::const_iterator it = clusters.begin(); it != clusters.end(); it++) {
289 assert((*it).size() > 0);
292 std::ostringstream oss;
293 for (std::set<std::string>::const_iterator it_id = it->begin(); it_id != it->end(); it_id++) {
294 oss << *it_id <<
" ";
297 std::string ids = oss.str();
308 device.
writeXMLHeader(
"pois",
NWFrame::MAJOR_VERSION +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo-sim.org/xsd/poi_file.xsd\"");
309 for (std::map<std::string, NBEdge*>::const_iterator i = ec.
begin(); i != ec.
end(); ++i) {
311 const std::vector<NBSign>& signs = e->
getSigns();
312 for (std::vector<NBSign>::const_iterator it = signs.begin(); it != signs.end(); ++it) {
313 it->writeAsPOI(device, e);