CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
OdDbGeoCoordinateSystem.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef _OD_DB_GEOCOORDINATESYSTEM_
25#define _OD_DB_GEOCOORDINATESYSTEM_
26
27#include "TD_PackPush.h"
28#include "Ge/GeExtents2d.h"
29#include "DbDatabase.h"
30#include "Ge/GePoint3d.h"
31
38
40{
43};
44
46{
49 double polarRadius;
51};
52
54{
56 double value;
57};
65{
66public:
68
77
85 virtual OdResult getId(OdString& categoryId) const = 0;
86
94 virtual OdResult getNumOfCoordinateSystem(int& num) const = 0;
95
105
114};
115
122{
123public:
125
129 enum Type
130 {
131 kTypeUnknown = 0, // The coordinate system is not set.
132 kTypeArbitrary = 1, // The coordinate system is arbitrary.
133 kTypeGeographic = 2, // The coordinate system is geographic.
134 kTypeProjected = 3 // The coordinate system is projected.
135 };
136
141 {
142 kProjectionCodeUnknown = 0, // Unknown projection code.
143 kProjectionCodeAlber = 4, // Albers equal-area conic projection.
144 kProjectionCodeAzede = 59, // Azimuthal equidistant projection (elevated ellipsoid).
145 kProjectionCodeAzmea = 11, // Lambert azimuthal equal-area projection.
146 kProjectionCodeAzmed = 7, // Lambert azimuthal equidistant projection.
147 kProjectionCodeBipolar = 31, // Bipolar oblique conformal conic projection.
148 kProjectionCodeBonne = 24, // Bonne Pseudo Conical projection.
149 kProjectionCodeCassini = 22, // Cassini projection.
150 kProjectionCodeEckert4 = 25, // Eckert pseudocylindrical projection (number IV).
151 kProjectionCodeEckert6 = 26, // Eckert pseudocylindrical projection (number VI).
152 kProjectionCodeEdcnc = 12, // Equidistant conic projection (conic projection).
153 kProjectionCodeEdcyl = 20, // Equidistant cylindrical projection (spherical only).
154 kProjectionCodeGaussK = 46, // Gauss-Kruger: Transverse Mercator projection without scale reduction parameter.
155 kProjectionCodeGnomonic = 19, // Gnomonic projection.
156 kProjectionCodeGoode = 28, // Goode homolosine projection.
157 kProjectionCodeHom1uv = 1281, // Unrectified Hotine Oblique Mercator Projection. Single point form.
158 kProjectionCodeHom1xy = 1282, // Rectified Hotine Oblique Mercator Projection. Single poin form.
159 kProjectionCodeHom2uv = 1283, // Unrectified Hotine Oblique Mercator Projection. Two point form.
160 kProjectionCodeHom2xy = 1284, // Rectified Hotine Oblique Mercator Projection. Two point form.
161 kProjectionCodeKrovak = 47, // Original Krovak projection.
162 kProjectionCodeKrvk95 = 51, // Krovak projection includes 1995 adjustment.
163 kProjectionCodeLL = 1, // Produces (processes) latitude and longitude.
164 kProjectionCodeLm1sp = 36, // Single standard parallel variation of the Lambert Conformal Conic projection.
165 kProjectionCodeLm2sp = 37, // Double standard parallel variation of the Lambert Conformal Conic projection.
166 kProjectionCodeLmblg = 38, // Belgian variation of the Lambert Conformal Conic projection.
167 kProjectionCodeLmtan = 8, // Lambert Tangential Conformal Conic projection.
168 kProjectionCodeMiller = 13, // Miller cylindrical projection.
169 kProjectionCodeMndotl = 41, // Minnesota DOT variation of the Lambert Conformal Conic projection.
170 kProjectionCodeMndott = 42, // Minnesota DOT variation of the Transverse Mercator projection.
171 kProjectionCodeModpc = 10, // Lallemand IMW Modified Polyconic projection.
172 kProjectionCodeMollweid = 27, // Mollweide projection.
173 kProjectionCodeMrcat = 6, // Mercator Cylindrical projection.
174 kProjectionCodeMrcatK = 49, // Standard Mercator projection with a scale reduction factor instead of a standard parallel.
175 kProjectionCodeMstero = 15, // Modified Stereographic projection.
176 kProjectionCodeNeacyl = 29, // Normal aspect. Equal-area Cylindrical projection.
177 kProjectionCodeNerth = 55, // Non-Earth projection.
178 kProjectionCodeNzealand = 16, // New Zealand National Grid.
179 kProjectionCodeOblqM = 5, // Oblique Mercator projection.
180 kProjectionCodeObqcyl = 56, // Oblique Cylindrical projection.
181 kProjectionCodeOrtho = 18, // Orthographic projection.
182 kProjectionCodeOstn02 = 60, // Transverse Mercator projection with the OSTN02 grid shift tacked on.
183 kProjectionCodeOstn97 = 58, // Transverse Mercator projection with the OSTN97 grid shift tacked on.
184 kProjectionCodeOstro = 34, // Oblique Stereographic projection.
185 kProjectionCodePlycn = 9, // Hassler American Polyconic projection.
186 kProjectionCodePstro = 33, // Polar Stereographic projection.
187 kProjectionCodePstrosl = 53, // Polar Stereographic projection with standard latitude.
188 kProjectionCodeRskew = 1285, // Hotine Oblique Mercator (variant B) projection.
189 kProjectionCodeRskewc = 1286, // Rectified Skew Orthomorphic projection, false origin and azimuth at center.
190 kProjectionCodeRskewo = 1287, // Rectified Skew Orthomorphic projection.
191 kProjectionCodeRobinson = 23, // Robinson Cylindrical projection.
192 kProjectionCodeSinus = 17, // Sinusoidal projection.
193 kProjectionCodeSotrm = 43, // Transverse Mercator south oriented projection.
194 kProjectionCodeSstro = 35, // Synder's Oblique Stereographic projection.
195 kProjectionCodeSwiss = 32, // Swiss projection.
196 kProjectionCodeSys34 = 57, // Combination of Transverse Mercator projection and a polynomial expansion used in Denmark.
197 kProjectionCodeSys34_99 = 61, // Combination of Transverse Mercator projection and a polynomial expansion used in Denmark. Polynomials are of the 1999 vintage.
198 kProjectionCodeTeacyl = 30, // Transverse aspect. Equal-area Cylindrical projection.
199 kProjectionCodeTm = 3, // Gauss-Kruger or Transverse Mercator Projection.
200 kProjectionCodeTrmeraf = 54, // Transverse Mercator projection with affine post-processor.
201 kProjectionCodeTrmrkrg = 62, // Transverse Mercator projection using Kruger formulation.
202 kProjectionCodeTrmrs = 45, // Transverse Mercator projection per J. P. Snyder.
203 kProjectionCodeVdgrntn = 21, // Van der Grinten projection.
204 kProjectionCodeWccsl = 39, // Wisconsin County Coordinate System variation; Lambert Conformal Conic projection.
205 kProjectionCodeWccst = 40, // Wisconsin County Coordinate System variation; Transverse Mercator projection.
206 kProjectionCodeUtm = 44, // The UTM direct variation of the Transverse Mercator projection.
207 kProjectionCodeWinkl = 63, // Winkel Tripel projection.
208 kProjectionCodeNrthsrt = 64, // North with scale and rotation projection.
209 kProjectionCodeLmbrtaf = 65, // Lambert Conformal Conic projection with affine post-processor.
210 kProjectionCodeSys34_01 = 66, // Combination of Transverse Mercator projection and polynomial expansion used in Denmark.
211 kProjectionCodeEdcylE = 67, // Equidistant Cylindrical projection, Ellipsoidal or Spherical.
212 kProjectionCodePlateCarree = 68, // Plate Carré projection.
213 kProjectionCodePvMercator = 69, // Popular Visualisation Pseudo Mercator projection (Google Earth).
214 kProjectionCodeLmMich = 70, // Lambert Conic Conformal (2SP Michigan) projection.
215 };
219 enum Unit
220 {
221 kUnitUnknown = 0,
222 kUnitMeter = 1,
223 kUnitFoot = 2,
224 kUnitInch = 3,
225 kUnitIFoot = 4,
226 kUnitClarkeFoot = 5,
227 kUnitIInch = 6,
228 kUnitCentimeter = 7,
229 kUnitKilometer = 8,
230 kUnitYard = 9,
231 kUnitSearsYard = 10,
232 kUnitMile = 11,
233 kUnitIYard = 12,
234 kUnitIMile = 13,
235 kUnitKnot = 14,
236 kUnitNautM = 15,
237 kUnitLat66 = 16,
238 kUnitLat83 = 17,
239 kUnitDecimeter = 18,
240 kUnitMillimeter = 19,
241 kUnitDekameter = 20,
242 kUnitHectometer = 21,
243 kUnitGermanMeter = 22,
244 kUnitCaGrid = 23,
245 kUnitClarkeChain = 24,
246 kUnitGunterChain = 25,
247 kUnitBenoitChain = 26,
248 kUnitSearsChain = 27,
249 kUnitClarkeLink = 28,
250 kUnitGunterLink = 29,
251 kUnitBenoitLink = 30,
252 kUnitSearsLink = 31,
253 kUnitRod = 32,
254 kUnitPerch = 33,
255 kUnitPole = 34,
256 kUnitFurlong = 35,
257 kUnitRood = 36,
258 kUnitCapeFoot = 37,
259 kUnitBrealey = 38,
260 kUnitSearsFoot = 39,
261 kUnitGoldCoastFoot = 40,
262 kUnitMicroInch = 41,
263 kUnitIndianYard = 42,
264 kUnitIndianFoot = 43,
265 kUnitIndianFt37 = 44,
266 kUnitIndianFt62 = 45,
267 kUnitIndianFt75 = 46,
268 kUnitIndianYd37 = 47,
269 kUnitDecameter = 48,
270 kUnitInternationalChain = 49,
271 kUnitInternationalLink = 50,
272 kUnitBrFootTrunc = 51,
273 kUnitBrChainTrunc = 52,
274 kUnitBrLinkTrunc = 53,
275 kUnitDegree = 1001,
276 kUnitGrad = 1002,
277 kUnitGrade = 1003,
278 kUnitMapInfo = 1004,
279 kUnitMil = 1005,
280 kUnitMinute = 1006,
281 kUnitRadian = 1007,
282 kUnitSecond = 1008,
283 kUnitDecisec = 1009,
284 kUnitCentisec = 1010,
285 kUnitMillisec = 1011,
286 };
302 virtual OdResult getId(OdString& coordSysId) const = 0;
310 virtual OdResult getEpsgCode(int& epsgCode) const = 0;
326 virtual OdResult getDescription(OdString& coordSysDesc) const = 0;
337 virtual OdResult getUnit(OdDb::UnitsValue& unit) const = 0;
357 virtual OdResult getUnitScale(double& unitScale) const = 0;
375 bool includeSpecialParams) const = 0;
383 virtual OdResult getDatum(OdDbGeoDatum& datum) const = 0;
394 virtual OdResult getEllipsoid(OdDbGeoEllipsoid& ellipsoid) const = 0;
402 virtual OdResult getOffset(OdGeVector2d& offsetVec) const = 0;
418 virtual OdResult getGeodeticExtents(OdGeExtents2d& exts) const = 0;
426 virtual OdResult getXmlRepresentation(OdString& strXml) const = 0;
434 virtual OdResult getWktRepresentation(OdString& strWkt) const = 0;
443 static OdResult create(const OdString& coordSysIdOrFullDef,
444 OdDbGeoCoordinateSystemPtr& pCoordSys);
469 const OdDbGeoCoordinateSystemCategory* pCategory = NULL);
470
479};
480
488{
489public:
506 virtual OdResult getSourceCoordinateSystemId(OdString& sourceCoordSysId) const = 0;
514 virtual OdResult getTargetCoordinateSystemId(OdString& targetCoordSysId) const = 0;
523 virtual OdResult transformPoint(const OdGePoint3d& pointIn, OdGePoint3d& pointOut) const = 0;
532 virtual OdResult transformPoints(const OdGePoint3dArray& pointsIn, OdGePoint3dArray& pointsOut) const = 0;
543 static OdResult transformPoint(const OdString& sourceCoordSysId,
544 const OdString& targetCoordSysId,
545 const OdGePoint3d& pointIn,
546 OdGePoint3d& pointOut);
547
558 static OdResult transformPoints(const OdString& sourceCoordSysId,
559 const OdString& targetCoordSysId,
560 const OdGePoint3dArray& pointsIn,
561 OdGePoint3dArray& pointsOut);
571 static OdResult create(const OdString& sourceCoordSysId,
572 const OdString& targetCoordSysId,
573 OdDbGeoCoordinateSystemTransformerPtr& pCoordSysTransformer);
574};
575
576#include "TD_PackPop.h"
577
578#endif //_OD_DB_GEOCOORDINATESYSTEM_
#define TOOLKIT_EXPORT
Definition: DbExport.h:40
OdSmartPtr< OdDbGeoCoordinateSystemCategory > OdDbGeoCoordinateSystemCategoryPtr
OdSmartPtr< OdDbGeoCoordinateSystemTransformer > OdDbGeoCoordinateSystemTransformerPtr
OdSmartPtr< OdDbGeoCoordinateSystem > OdDbGeoCoordinateSystemPtr
OdResult
Definition: OdResult.h:29
ODRX_DECLARE_MEMBERS(OdDbGeoCoordinateSystemCategory)
virtual OdResult getCoordinateSystemAt(int index, OdDbGeoCoordinateSystemPtr &pCoordSys) const =0
virtual OdResult getNumOfCoordinateSystem(int &num) const =0
virtual OdResult getId(OdString &categoryId) const =0
static OdResult createAll(OdArray< OdDbGeoCoordinateSystemCategoryPtr > &allCategories)
virtual OdResult getOffset(OdGeVector2d &offsetVec) const =0
virtual OdResult getProjectionParameters(OdArray< OdDbGeoProjectionParameter > &prjParams, bool includeSpecialParams) const =0
virtual OdResult getType(OdDbGeoCoordinateSystem::Type &type) const =0
virtual OdResult getUnit(OdDbGeoCoordinateSystem::Unit &unit) const =0
static OdResult createAll(OdArray< OdDbGeoCoordinateSystemPtr > &allCoordSys, const OdDbGeoCoordinateSystemCategory *pCategory=NULL)
virtual OdResult getDescription(OdString &coordSysDesc) const =0
virtual OdResult getCartesianExtents(OdGeExtents2d &exts) const =0
virtual OdResult getUnitScale(double &unitScale) const =0
virtual OdResult getXmlRepresentation(OdString &strXml) const =0
static OdResult createAll(const OdGePoint3d &geoPt, OdArray< OdDbGeoCoordinateSystemPtr > &allCoordSys)
virtual OdResult getUnit(OdDb::UnitsValue &unit) const =0
virtual OdResult getGeodeticExtents(OdGeExtents2d &exts) const =0
ODRX_DECLARE_MEMBERS(OdDbGeoCoordinateSystem)
virtual OdResult getWktRepresentation(OdString &strWkt) const =0
virtual OdResult getProjectionCode(OdDbGeoCoordinateSystem::ProjectionCode &prjCode) const =0
virtual OdResult getEpsgCode(int &epsgCode) const =0
static OdString unitNameToString(OdDbGeoCoordinateSystem::Unit eUnit)
virtual ~OdDbGeoCoordinateSystem()
virtual OdResult getDatum(OdDbGeoDatum &datum) const =0
static OdResult create(const OdString &coordSysIdOrFullDef, OdDbGeoCoordinateSystemPtr &pCoordSys)
virtual OdResult getId(OdString &coordSysId) const =0
virtual OdResult getEllipsoid(OdDbGeoEllipsoid &ellipsoid) const =0
static OdResult transformPoints(const OdString &sourceCoordSysId, const OdString &targetCoordSysId, const OdGePoint3dArray &pointsIn, OdGePoint3dArray &pointsOut)
static OdResult transformPoint(const OdString &sourceCoordSysId, const OdString &targetCoordSysId, const OdGePoint3d &pointIn, OdGePoint3d &pointOut)
virtual OdResult getSourceCoordinateSystemId(OdString &sourceCoordSysId) const =0
virtual OdResult getTargetCoordinateSystemId(OdString &targetCoordSysId) const =0
virtual OdResult transformPoint(const OdGePoint3d &pointIn, OdGePoint3d &pointOut) const =0
ODRX_DECLARE_MEMBERS(OdDbGeoCoordinateSystemTransformer)
static OdResult create(const OdString &sourceCoordSysId, const OdString &targetCoordSysId, OdDbGeoCoordinateSystemTransformerPtr &pCoordSysTransformer)
virtual OdResult transformPoints(const OdGePoint3dArray &pointsIn, OdGePoint3dArray &pointsOut) const =0
GLuint index
Definition: gles2_ext.h:265
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
UnitsValue
Definition: OdaDefs.h:451