KmlOut module¶
Module contents¶
-
class kml¶
Handles writing tracks as kml Has lots of internal structure to make the following use cases work:
std::cout << kml::header; std::cout << kml(t); std::cout << kml::footer; out = ofstream; out << kml(t);
For both of the above a default style will be used (green, width = 3) in the case of a single trajectory and a random color will be used with the same default
¶
width = 3 for a vector of trajectories.¶
To control color and width:
std::cout << kml::header; kml::write(std::cout, t, "AABBGGRR", 4) std::cout << kml::footer; kml::write("filname", t, "AABBGGRR", 5)
These are the limits of style control at this time.
TODO: Simplify use of multipoint and linepoint methods (requires placemark) TODO: Implement placemark manipulation TODO: Implement style manipulation
Overloaded KML Methods
These methods generate kml objects for output for a given tracjectory or point. If a file is specified, the header and footer are automatically written. If a stream is specified, the header and footer are NOT automatically written. Write can be called with either a single trajectory or a vector.
-
inline kml(const TrajectoryT &_t)¶
-
inline kml(const TrajectoryVectorT &_v)¶
-
inline kml(const PointerVectorT &_vp)¶
Overloaded Write Methods
These methods output kml. If a file is specified, the header and footer are automatically written. If a stream is specified, the header and footer are NOT automatically written. Write can be called with either a single trajectory or a vector.
-
static void write(const std::string &_filename, const TrajectoryVectorT &_trajectories)¶
-
static void write(std::ostream &_o, const TrajectoryVectorT &_trajectories)¶
-
static void write(std::ostream &_o, const PointerVectorT &_trajectories)¶
-
static void write(const std::string &_filename, const TrajectoryT &_trajectory)¶
-
static void write(const std::string &_filename, const TrajectoryT &_trajectory, const std::string &_color, const double &_width)¶
-
static void write(std::ostream &_o, const TrajectoryT &_trajectory, const std::string &_color, const double &_width)¶
Public Types
-
using TrajectoryT = tracktable::domain::terrestrial::trajectory_type¶
-
using TrajectoryVectorT = std::vector<TrajectoryT>¶
-
using PointerT = std::shared_ptr<TrajectoryT>¶
-
using VectorT = std::vector<TrajectoryT>¶
-
using PointT = TrajectoryT::point_type¶
Public Static Functions
-
static std::string generateColorString()¶
-
static void writeStyle(std::ostream &_o, const std::string &_id, const std::string &_color, double _width)¶
Writes a style.
- Parameters:
_o – Where to write
_id – The id to use for the style, referenced by placemarks later
_color – ABGR hex value for color
_width – pixel width to use
-
static void writeLinestring(std::ostream &_o, const TrajectoryT &_trajectory)¶
Writes a placemark that renders as lines.
- Parameters:
_o – where to write
_trajectory – what to write
-
static void writeMultipoint(std::ostream &_o, const TrajectoryT &_trajectory)¶
Writes a placemark that renders as points.
- Parameters:
_o – where to write
_trajectory – what to write
-
static void writePoint(std::ostream &_o, const PointT &_point)¶
Writes a placemark that renders as a single point.
- Parameters:
_o – where to write
_point – what to write
-
static void writeLineAndPoints(std::ostream &_o, const TrajectoryT &_trajectory)¶
Writes a placemark that uses multigeomtry to render a line with points.
- Parameters:
_o – where to write
_trajectory – what to write
-
static void writeBox(std::ostream &_o, const box &_box)¶
Writes a placemark that uses multigeomtry to render a line with points.
- Parameters:
_o – where to write
_trajectory – what to write
-
static void writeCoords(std::ostream &_o, const PointT &_point)¶
Utility to minimize maintenance on writing points as coordinates.
- Parameters:
_o – where to write
_point – what to write
-
static void writeToSeparateKmls(const TrajectoryVectorT &_trajectories, const std::string &_output_dir)¶
This simplifies writing individual files for a set of trajectories The directory to write the files is specified instead of a filename.
- Parameters:
_trajectories – trajectories to write
_output_dir – directory to write to
-
static void writePlacemarkHeader(std::ostream &_o)¶
Writes a default Placemark header tag.
- Parameters:
_o – where to write
Writes a default Placemark footer tag.
- Parameters:
_o – where to write
-
static void writeMultiGeometryHeader(std::ostream &_o)¶
Writes a default MultiGeometry header tag.
- Parameters:
_o – where to write
Writes a default MultiGeometry footer tag.
- Parameters:
_o – where to write
Public Static Attributes
-
static double _width = 3¶
-
static std::string _color = "FFFFFFFF"¶
-
static std::string _name = "UNIDFENTIFIED"¶
-
static std::string _styleid = "tracktable_style"¶
-
static bool _isInsidePlacemark = false¶
-
static bool _isInsideMultiGeometry = false¶
-
struct box¶
Helper struct that allows for for.
out << box(corner1, corner2)
which will render a box This will be missing some header/footer neccesary for full kml rendering
-
struct color¶
Helper struct that sets the KML object’s color This will be missing some header/footer neccesary for full kml rendering.
-
struct linepoints¶
Helper struct that allows for for.
out << linepoints(t)
which will render as lines with points This will be missing some header/footer neccesary for full kml rendering
Public Members
-
TrajectoryT const *const trajectory¶
-
TrajectoryT const *const trajectory¶
-
struct linestring¶
Helper struct that allows for.
out << linestring(t)
which will render as a line. This will be missing some header/footer information neccesary for full kml rendering.
Public Members
-
TrajectoryT const *const trajectory¶
-
TrajectoryT const *const trajectory¶
-
struct multipoint¶
Helper struct that allows for for.
out << multipoint(t)
which will render as set of points. This will be missing some header/footer information neccesary for full kml rendering.
Public Members
-
TrajectoryT const *const trajectory¶
-
TrajectoryT const *const trajectory¶
-
struct name¶
Helper struct that sets the KML object’s name This will be missing some header/footer neccesary for full kml rendering.
-
struct point¶
Helper struct that allows for for.
out << point(t)
which will render as a single point This will be missing some header/footer neccesary for full kml rendering
-
struct startmulti¶
Helper struct that sets the KML object’s starting Multigeometry This will be missing some header/footer neccesary for full kml rendering.
Public Functions
-
inline startmulti()¶
-
inline startmulti()¶
-
struct startpm¶
Helper struct that sets the KML object’s starting Placemark This will be missing some header/footer neccesary for full kml rendering.
Public Functions
-
inline startpm()¶
-
inline startpm()¶
-
struct stopmulti¶
Helper struct that sets the KML object’s stopping Multigeometry This will be missing some header/footer neccesary for full kml rendering.
Public Functions
-
inline stopmulti()¶
-
inline stopmulti()¶
-
struct stoppm¶
Helper struct that sets the KML object’s stopping Placemark This will be missing some header/footer neccesary for full kml rendering.
Public Functions
-
inline stoppm()¶
-
inline stoppm()¶
-
struct style¶
Helper struct that sets the KML object’s style This will be missing some header/footer neccesary for full kml rendering.
Public Functions
-
inline style(const std::string &_id, const std::string &_c, const double &_w)¶
-
inline style(const std::string &_id, const std::string &_c, const double &_w)¶
-
struct style_id¶
Helper struct that sets the KML object’s style id This will be missing some header/footer neccesary for full kml rendering.
-
struct time_span¶
Helper struct that allows for for.
out << time_span(start, stop)
which will render a timespan between two timestamps This will be missing some header/footer neccesary for full kml rendering
-
struct width¶
Helper struct that sets the KML object’s width This will be missing some header/footer neccesary for full kml rendering.
-
inline kml(const TrajectoryT &_t)¶