9 #include <boost/enable_shared_from_this.hpp>
13 #include <matrix/coordTransform.h>
16 class OGRSpatialReference;
19 class SpatialReference;
22 namespace MAKVRinTerra
25 class DtFeatureGeometry;
39 typedef boost::shared_ptr<DtProj>
Ptr;
40 typedef boost::shared_ptr<const DtProj>
CPtr;
43 typedef boost::error_info<DtProj, DtProj::CPtr>
ErrorInfo;
65 Bounds(
const DtProj& proj,
double xmin,
double ymin,
double xmax,
double ymax);
73 const DtProj& projection()
const;
85 std::string projString, boost::optional<AngleUnits> = boost::optional<AngleUnits>());
87 static DtProj::CPtr Make(std::auto_ptr<Coordinate_System>);
89 static DtProj::CPtr Make(
const osgEarth::SpatialReference*);
100 std::string projString()
const;
102 void print(std::ostream&)
const;
103 std::string
print()
const;
106 const DtCoordTransform* transform()
const;
111 bool inRadians()
const;
112 bool inDegrees()
const;
113 bool isLatLong()
const;
114 bool isLongLat()
const;
116 bool isGeodetic()
const;
117 bool isGeocentric()
const;
118 bool isFlatEarth()
const;
135 long count,
int offset,
double* x,
double* y,
double* z);
139 static void Convert(
const DtProj & from,
const DtProj & to, std::vector<DtPoint> & points);
140 static void Convert(
const DtProj & from,
const DtProj & to, std::list<DtPoint> & points);
161 explicit DtProj(std::string projString, boost::optional<AngleUnits>);
164 explicit DtProj(std::auto_ptr<Coordinate_System> cs);
173 boost::shared_ptr<Coordinate_System>
myCS;