00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef PROJECTIONSH
00011 #define PROJECTIONSH
00012
00013
00014
00015
00016
00017
00018
00019
00020 enum DATUM { ADINDAN = 0, ARC1950, ARC1960, AUSTRALIAN_GEODETIC_1966,
00021 AUSTRALIAN_GEODETIC_1984, CAMP_AREA_ASTRO, CAPE,
00022 EUROPEAN_DATUM_1950, EUROPEAN_DATUM_1979, GEODETIC_DATUM_1949,
00023 HONG_KONG_1963, HU_TZU_SHAN, INDIAN, NAD27, NAD83,
00024 OLD_HAWAIIAN_MEAN, OMAN, ORDNANCE_SURVEY_1936, PUERTO_RICO,
00025 PULKOVO_1942, PROVISIONAL_S_AMERICAN_1956, TOKYO, WGS_72, WGS_84,
00026 UNKNOWN_DATUM = -1, NO_DATUM = -2, DEFAULT_DATUM = -3 };
00027
00028 #include "ogr_spatialref.h"
00029
00031
00038 class vtProjection : public OGRSpatialReference
00039 {
00040 public:
00041 vtProjection();
00042
00043
00044 vtProjection &vtProjection::operator=(vtProjection &ref);
00045
00046
00047 bool operator==(vtProjection &ref);
00048
00049 bool IsUTM();
00050 void SetUTMZone(int iZone);
00051 int GetUTMZone();
00052 void SetDatum(DATUM datum);
00053 DATUM GetDatum();
00054
00055 void SetProjectionSimple(int proj_type, int iUTMZone, DATUM eDatum);
00056 void SetSpatialReference(OGRSpatialReference *pRef);
00057
00058 const char *GetProjectionName();
00059 const char *GetProjectionNameShort();
00060
00061 protected:
00062 DATUM m_Datum;
00063 };
00064
00065 struct StatePlaneInfo
00066 {
00067 char *name;
00068 int number;
00069 DATUM datum;
00070 int usgs_code;
00071 };
00072
00074
00075
00076 #define OCT OGRCoordinateTransformation
00077
00079
00080
00081 const char *datumToString(DATUM d);
00082 StatePlaneInfo *GetStatePlaneTable();
00083 int GetNumStatePlanes();
00084 void CreateSimilarGeographicProjection(vtProjection &source, vtProjection &geo);
00085
00087
00088 #endif // PROJECTIONSH