54 const std::vector<std::string>& removeByNames)
55 : myPruningBoundary(pruningBoundary), myDoPrune(prune),
56 myRemoveByNames(removeByNames) {}
114 WRITE_WARNING(
"Ignoring option \"proj.plain-geo\" because no geo-conversion has been defined");
126 i->second->writeXML(out, useGeo);
131 std::map<std::string, LanePos>::const_iterator it =
myLanePosPois.find(i->first);
133 i->second->writeXML(out, useGeo, zOffset);
135 i->second->writeXML(out, useGeo, zOffset, it->second.laneID, it->second.pos, it->second.posLat);
148 strftime(buffer, 80,
"on %c", localtime(&rawtime));
149 device <<
"# Generated " << buffer <<
" by " << oc.
getFullName() <<
"\n";
150 device <<
"# Format matches Extraction version: V" << OUTPUT_VERSION <<
" \n";
151 std::stringstream tmp;
153 tmp.seekg(std::ios_base::beg);
156 std::getline(tmp, line);
157 device <<
"# " << line <<
"\n";
168 const double geoScale = pow(10.0f, haveGeo ? 5 : 2);
174 out <<
"# ID\tCITY\tTYPE\tNAME\tgeo_x\tgeo_y\n";
182 out << i->second->getType() <<
"\t";
183 out << i->first <<
"\t";
184 out << pos.
x() <<
"\t";
185 out << pos.
y() <<
"\t";
194 out2 <<
"# ID\tCITY\tTYPE\tNAME\tgeo_x1\tgeo_y1\t[geo_x2 geo_y2 ...]\n";
199 out2 << i->second->getType() <<
"\t";
200 out2 << i->first <<
"\t";
203 for (
int i = 0; i < (int) shape.size(); i++) {
207 out2 << pos.
x() <<
"\t";
208 out2 << pos.
y() <<
"\t";
void close()
Closes the device and removes it from the dictionary.
static void writeLocation(OutputDevice &into)
writes the location element
void cartesian2geo(Position &cartesian) const
Converts the given cartesian (shifted) position to its geo (lat/long) representation.
bool partialWithin(const AbstractPoly &poly, double offset=0) const
Returns whether the boundary is partially within the given polygon.
PCPolyContainer(bool prune, const Boundary &pruningBoundary, const std::vector< std::string > &removeByNames)
Constructor.
bool add(SUMOPolygon *poly, bool ignorePruning=false)
Adds a polygon to the storage.
void saveDlrTDP(const std::string &prefix)
Saves the stored polygons and pois into the given file in dlrTDP format.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
double x() const
Returns the x-position.
Polygons myPolygons
stored Polygons
const PositionVector & getShape() const
Returns whether the shape of the polygon.
void save(const std::string &file, bool useGeo)
Saves the stored polygons and pois into the given file.
void setPrecision(int precision=gPrecision)
Sets the precison or resets it to default.
const std::string & getFullName() const
A class that stores a 2D geometrical boundary.
#define WRITE_WARNING(msg)
void addLanePos(const std::string &poiID, const std::string &laneID, double lanePos, double lanePosLat)
static OptionsCont & getOptions()
Retrieves the options.
void writeConfiguration(std::ostream &os, const bool filled, const bool complete, const bool addComments, const bool maskDoubleHyphen=false) const
Writes the configuration.
void clear()
Removes all items from the container (deletes them, too)
Boundary myPruningBoundary
The boundary that described the rectangle within which an object must be in order to be kept...
const std::string & getID() const
Returns the id.
bool usingGeoProjection() const
Returns whether a transformation from geo to metric coordinates will be performed.
static methods for processing the coordinates conversion for the current net
bool writeXMLHeader(const std::string &rootElement, const std::string &schemaFile, std::map< SumoXMLAttr, std::string > attrs=std::map< SumoXMLAttr, std::string >())
Writes an XML header with optional configuration.
A point in 2D or 3D with translation and scaling methods.
std::map< std::string, LanePos > myLanePosPois
An id to pos map for lane pos specs.
double y() const
Returns the y-position.
~PCPolyContainer()
Destructor.
std::map< std::string, int > myIDEnums
An id to int map for proper enumeration.
const IDMap & getMyMap() const
Returns a reference to the internal map.
bool around(const Position &p, double offset=0) const
Returns whether the boundary contains the given coordinate.
static OutputDevice & getDevice(const std::string &name)
Returns the described OutputDevice.
int getEnumIDFor(const std::string &key)
Retuns a unique id for a given name.
A storage for options typed value containers)
std::vector< std::string > myRemoveByNames
List of names of polygons/pois that shall be removed.
static const GeoConvHelper & getFinal()
the coordinate transformation for writing the location element and for tracking the original coordina...
virtual bool add(SUMOPolygon *poly, bool ignorePruning=false)
add polygon
Static storage of an output device and its base (abstract) implementation.
void mul(double val)
Multiplies both positions with the given value.
bool myDoPrune
Information whether the pruning boundary shall be used.
Boundary getBoxBoundary() const
Returns a boundary enclosing this list of lines.
static void writeDlrTDPHeader(OutputDevice &device, const OptionsCont &oc)