48 #ifdef CHECK_MEMORY_LEAKS
50 #endif // CHECK_MEMORY_LEAKS
64 if (!oc.
isSet(
"dlr-navteq-output")) {
77 strftime(buffer, 80,
"on %c", localtime(&rawtime));
78 device <<
"# Generated " << buffer <<
" by " << oc.
getFullName() <<
"\n";
79 device <<
"# Format matches Extraction version: V6.0 \n";
80 std::stringstream tmp;
82 tmp.seekg(std::ios_base::beg);
85 std::getline(tmp, line);
86 device <<
"# " << line <<
"\n";
102 const SUMOReal geoScale = pow(10.0f, haveGeo ? 5 : 2);
105 WRITE_WARNING(
"DlrNavteq node data will be written in (floating point) cartesian coordinates");
108 device <<
"# NODE_ID\tIS_BETWEEN_NODE\tamount_of_geocoordinates\tx1\ty1\t[x2 y2 ... xn yn]\n";
110 for (std::map<std::string, NBNode*>::const_iterator i = nc.
begin(); i != nc.
end(); ++i) {
115 device << n->
getID() <<
"\t0\t1\t" << pos.
x() <<
"\t" << pos.
y() <<
"\n";
118 for (std::map<std::string, NBEdge*>::const_iterator i = ec.
begin(); i != ec.
end(); ++i) {
121 if (geom.size() > 2) {
122 std::string internalNodeID = e->
getID();
124 (nc.
retrieve(internalNodeID) != 0)) {
126 internalNodeID +=
"_geometry";
128 device << internalNodeID <<
"\t1\t" << geom.size() - 2;
129 for (
size_t ii = 1; ii < geom.size() - 1; ++ii) {
133 device <<
"\t" << pos.
x() <<
"\t" << pos.
y();
147 device <<
"# LINK_ID\tNODE_ID_FROM\tNODE_ID_TO\tBETWEEN_NODE_ID\tLENGTH\tVEHICLE_TYPE\tFORM_OF_WAY\tBRUNNEL_TYPE\tFUNCTIONAL_ROAD_CLASS\tSPEED_CATEGORY\tNUMBER_OF_LANES\tSPEED_LIMIT\tSPEED_RESTRICTION\tNAME_ID1_REGIONAL\tNAME_ID2_LOCAL\tHOUSENUMBERS_RIGHT\tHOUSENUMBERS_LEFT\tZIP_CODE\tAREA_ID\tSUBAREA_ID\tTHROUGH_TRAFFIC\tSPECIAL_RESTRICTIONS\tEXTENDED_NUMBER_OF_LANES\tISRAMP\tCONNECTION\n";
149 for (std::map<std::string, NBEdge*>::const_iterator i = ec.
begin(); i != ec.
end(); ++i) {
153 device << e->
getID() <<
"\t"
156 << betweenNodeID <<
"\t"
185 if (permissions ==
SVCAll) {
186 return "100000000000";
188 std::ostringstream oss;
190 oss << ((permissions & SVC_PASSENGER) > 0 ? 1 : 0);
191 oss << ((permissions & SVC_PASSENGER) > 0 ? 1 : 0);
192 oss << ((permissions & SVC_HOV) > 0 ? 1 : 0);
193 oss << ((permissions & SVC_EMERGENCY) > 0 ? 1 : 0);
194 oss << ((permissions & SVC_TAXI) > 0 ? 1 : 0);
195 oss << ((permissions & (SVC_BUS | SVC_COACH)) > 0 ? 1 : 0);
196 oss << ((permissions & SVC_DELIVERY) > 0 ? 1 : 0);
197 oss << ((permissions & (SVC_TRUCK | SVC_TRAILER)) > 0 ? 1 : 0);
198 oss << ((permissions & SVC_MOTORCYCLE) > 0 ? 1 : 0);
199 oss << ((permissions & SVC_BICYCLE) > 0 ? 1 : 0);
200 oss << ((permissions & SVC_PEDESTRIAN) > 0 ? 1 : 0);
286 const unsigned int code = (numLanes == 1 ? 1 :
287 (numLanes < 4 ? 2 : 3));
288 return numLanes * 10 + code;
307 const SUMOReal geoScale = pow(10.0f, haveGeo ? 5 : 2);
310 device <<
"#Traffic signal related to LINK_ID and NODE_ID with location relative to driving direction.\n#column format like pointcollection.\n#DESCRIPTION->LOCATION: 1-rechts von LINK; 2-links von LINK; 3-oberhalb LINK -1-keineAngabe\n#RELATREC_ID\tPOICOL_TYPE\tDESCRIPTION\tLONGITUDE\tLATITUDE\tLINK_ID\n";
312 for (std::map<std::string, NBNode*>::const_iterator i = nc.
begin(); i != nc.
end(); ++i) {
319 for (EdgeVector::const_iterator it = incoming.begin(); it != incoming.end(); ++it) {
321 device << e->
getID() <<
"\t"
323 <<
"LSA;NODEIDS#" << n->
getID() <<
"#;LOCATION#-1#;\t"
326 << e->
getID() <<
"\n";