00001
00096 #ifndef INC_SPATMOD_IMAGETARGETTILESETKML_H
00097 #define INC_SPATMOD_IMAGETARGETTILESETKML_H
00098
00099 #ifndef INC_SPATMOD_IMAGETARGETILESETFILE_H
00100 #include <spatmod/imagetargettilesetfile.h>
00101 #endif
00102
00103 class MISTATUSCONTEXT;
00104
00105 namespace SPATMOD {
00106 namespace IMAGE {
00107
00108 class TARGETPARM_TIFF;
00109
00110
00111
00113 class TARGET_TILESET_KML : public TARGET_TILESET_FILE {
00114 public:
00115
00117 static ERRVALUE CreateHTML (
00118 TILESET& Tileset,
00119 const MISTRING& ServerURL,
00120 bool bOverwriteExisting = true,
00121 MISTRING GoogleAPIKey = TEXTID__None
00122 );
00123
00125 static ERRVALUE CreateHTML (
00126 TILESET& Tileset,
00127 bool bOverwriteExisting = true,
00128 MISTRING GoogleAPIKey = TEXTID__None
00129 );
00130
00132 static ERRVALUE ComputeReducedLevel (
00133 TILESET& Tileset,
00134 INT32 level,
00135 MISTRING message = TEXTID_Creating_ResolutionLevelN
00136 );
00137
00139 static ERRVALUE ComputeReducedLevel (
00140 TILESET& Tileset,
00141 const FILEPATH& SourcePath,
00142 const FILEPATH& TargetPath,
00143 INT32 level,
00144 MISTRING message = TEXTID_Creating_ResolutionLevelN
00145 );
00146
00148 static ERRVALUE ComputeReducedLevel (
00149 TILESET& Tileset,
00150 INT32 level,
00151 TILESET::IMGFORMAT ImgFormat = TILESET::IMGFORMAT_Invalid,
00152 UINT16 QualityJPEG = 75,
00153 TARGETPARM_TIFF *pParmsTIFF = NULL,
00154 MISTRING message = TEXTID_Creating_ResolutionLevelN,
00155 bool bZipOutput = false
00156 );
00157
00159 static ERRVALUE ComputeReducedLevel (
00160 TILESET& Tileset,
00161 const FILEPATH& SourcePath,
00162 const FILEPATH& TargetPath,
00163 INT32 level,
00164 TILESET::IMGFORMAT ImgFormat,
00165 const IMAGE::PIXEL& PixelProperties,
00166 UINT16 QualityJPEG = 75,
00167 TARGETPARM_TIFF *pParmsTIFF = NULL,
00168 MISTRING message = TEXTID_Creating_ResolutionLevelN,
00169 bool bZipOutput = false,
00170 RESAMPLEMETHOD ResampleMethod = RESAMPLEMETHOD_Nearest
00171 );
00172
00174 static ERRVALUE ComputeStructureLevel (
00175 TILESET& Tileset,
00176 const FILEPATH& SourcePath,
00177 const FILEPATH& TargetPath,
00178 INT32 level,
00179 MISTRING message = TEXTID_Creating_ResolutionLevelN,
00180 bool bZipOutput = false
00181 );
00182
00184 static ERRVALUE WriteBranchKML (
00185 TILESET& Tileset,
00186 const FILEPATH& TileLocation,
00187 INT32 level,
00188 const LPOINT2D& TileIdx,
00189 bool bPutGroundOverlay = true
00190 );
00191
00193 static ERRVALUE WriteLeafKML (
00194 TILESET& Tileset,
00195 const FILEPATH& TileLocation,
00196 INT32 level,
00197 const LPOINT2D& TileIdx
00198 );
00199
00201 static ERRVALUE WriteRootKML (
00202 TILESET& Tileset,
00203 const MISTRING& ServerURL,
00204 const FILEPATH& KMLLocation,
00205 const FILEPATH& TileLocation,
00206 bool bOverwriteExisting = true,
00207 INT32 MinLevel = -1
00208 );
00209
00211 static ERRVALUE WriteRootKML (
00212 TILESET& Tileset,
00213 const FILEPATH& KMLLocation,
00214 const FILEPATH& TileLocation,
00215 bool bOverwriteExisting = true,
00216 INT32 MinLevel = -1
00217 );
00218
00220 static ERRVALUE ResolveBranchKML (
00221 TILESET& Tileset,
00222 const FILEPATH& TileLocation,
00223 bool bOverwriteExisting = true,
00224 INT32 MinLevel = -1
00225 );
00226
00228 TARGET_TILESET_KML (
00229 STAGE *pInputStage,
00230 TILESET::IMGFORMAT format,
00231 const FILEPATH& filepath,
00232 INT32 TileSize,
00233 IMAGE::TILESET::PROFILE profile
00234 );
00235
00237 TARGET_TILESET_KML (
00238 STAGE *pInputStage,
00239 TILESET::IMGFORMAT format,
00240 const FILEPATH& filepath,
00241 INT32 TileSize,
00242 INT32 MinLevel,
00243 INT32 MaxLevel
00244 );
00245
00247 virtual ~TARGET_TILESET_KML ();
00248
00251 void SetGeogExtents (
00252 const DRECT2D& GeogExtents
00253 ) { m_GeogExtents = GeogExtents; }
00254
00256 void SetParmsJPEG (
00257 INT16 quality
00258 ) { m_QualityJPEG = quality; }
00259
00261 void SetParmsTIFF (
00262 const TARGETPARM_TIFF& Parm
00263 );
00264
00266 void SetProcessBranchKML (
00267 bool bProcessBranchKML
00268 ) { m_bProcessBranchKML = bProcessBranchKML; }
00269
00271 void SetProcessLeafKML (
00272 bool bProcessLeafKML
00273 ) { m_bProcessLeafKML = bProcessLeafKML; }
00274
00276 void SetCreateFullStructure (
00277 bool bCreateFullStructure
00278 ) { m_bCreateFullStructure = bCreateFullStructure; }
00279
00280 private:
00281 #ifndef GENERATING_DOXYGEN_OUTPUT
00282 typedef TARGET_TILESET_FILE BASECLASS;
00283
00284 class IMAGEINFOKML;
00285
00286 DRECT2D m_GeogExtents;
00287 TARGETPARM_TIFF *m_pParmsTIFF;
00288 UINT16 m_QualityJPEG;
00289 FILEPATH m_basepath;
00290 bool m_bProcessBranchKML;
00291 bool m_bProcessLeafKML;
00292 bool m_bCreateFullStructure;
00293 SPATMOD::IMAGE::TILESET m_ProcessTileset;
00294 MISTATUSCONTEXT *m_pStatusContext;
00295
00296 static ERRVALUE WriteBranchKML (
00297 const FILEPATH& PathImage,
00298 const DRECT2D& GeogExtent,
00299 const IMAGEINFOKML ImagePrev[2][2],
00300 INT32 MinLodPixelsImage,
00301 INT32 MaxLodPixelsImage,
00302 INT32 level,
00303 bool bPutGroundOverlay = true
00304 );
00305
00306 ERRVALUE WriteLeafKML (
00307 const FILEPATH& PathImage,
00308 const SOURCE_MEMORY& SourceTile,
00309 INT32 level
00310 );
00311
00312
00313 virtual ERRVALUE v_Initialize ();
00314 virtual ERRVALUE v_PushBegin (const SECTION_ITERATOR& iterator);
00315 virtual ERRVALUE v_PushEnd ();
00316
00317
00318 ERRVALUE v_CreateTargetFile (IMAGE::STAGE *pStageInput, const FILEPATH& filepath, const IMAGE::FORMAT& format, IMAGE::TARGET_FILE *& pTargetFile) const;
00319 virtual ERRVALUE v_WriteTile (SOURCE_MEMORY& SourceTile, const LPOINT3D& TileIdx, bool HasNullCells);
00320
00321
00322 TARGET_TILESET_KML (const TARGET_TILESET_KML&);
00323 TARGET_TILESET_KML& operator= (const TARGET_TILESET_KML&);
00324 #endif // GENERATING_DOXYGEN_OUTPUT
00325
00326 };
00327
00328
00329
00330 }
00331 }
00332
00333 #endif // INC_SPATMOD_IMAGETARGETTILESETKML_H
00334