47 const std::vector<std::string>& removeByNames)
48 : myPruningBoundary(pruningBoundary), myDoPrune(prune),
49 myRemoveByNames(removeByNames) {}
107 WRITE_WARNING(
"Ignoring option \"proj.plain-geo\" because no geo-conversion has been defined");
119 i.second->writeXML(out, useGeo);
124 std::map<std::string, LanePos>::const_iterator it =
myLanePosPois.find(i.first);
126 i.second->writeXML(out, useGeo, zOffset);
128 i.second->writeXML(out, useGeo, zOffset, it->second.laneID, it->second.pos, it->second.posLat);
137 device <<
"# Format matches Extraction version: V6.5 \n";
138 std::stringstream tmp;
140 tmp.seekg(std::ios_base::beg);
143 std::getline(tmp, line);
144 device <<
"# " << line <<
"\n";
155 const double geoScale = pow(10.0f, haveGeo ? 5 : 2);
161 out <<
"# ID\tCITY\tTYPE\tNAME\tgeo_x\tgeo_y\n";
163 for (
const auto& i :
myPOIs) {
169 out << i.second->getShapeType() <<
"\t";
170 out << i.first <<
"\t";
171 out << pos.
x() <<
"\t";
172 out << pos.
y() <<
"\t";
181 out2 <<
"# ID\tCITY\tTYPE\tNAME\tgeo_x1\tgeo_y1\t[geo_x2 geo_y2 ...]\n";
186 out2 << i.second->getShapeType() <<
"\t";
187 out2 << i.first <<
"\t";
190 for (
int i = 0; i < (int) shape.size(); i++) {
194 out2 << pos.
x() <<
"\t";
195 out2 << pos.
y() <<
"\t";
void close()
Closes the device and removes it from the dictionary.
static void writeLocation(OutputDevice &into)
writes the location element
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 y() const
Returns the y-position.
bool usingGeoProjection() const
Returns whether a transformation from geo to metric coordinates will be performed.
Polygons myPolygons
stored Polygons
double x() const
Returns the x-position.
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 PositionVector & getShape() const
Returns whether the shape of the polygon.
const std::string & getID() const
Returns the id.
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 inComment=false) const
Writes the configuration.
void clear()
Removes all items from the container (deletes them, too)
void cartesian2geo(Position &cartesian) const
Converts the given cartesian (shifted) position to its geo (lat/long) representation.
Boundary myPruningBoundary
The boundary that described the rectangle within which an object must be in order to be kept...
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.
~PCPolyContainer()
Destructor.
std::map< std::string, int > myIDEnums
An id to int map for proper enumeration.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
bool partialWithin(const AbstractPoly &poly, double offset=0) const
Returns whether the boundary is partially within the given polygon.
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.
bool around(const Position &p, double offset=0) const
Returns whether the AbstractPoly the given coordinate.
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.
Boundary getBoxBoundary() const
Returns a boundary enclosing this list of lines.
void mul(double val)
Multiplies both positions with the given value.
bool myDoPrune
Information whether the pruning boundary shall be used.
static void writeDlrTDPHeader(OutputDevice &device, const OptionsCont &oc)