Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: GDAL 4 : * Purpose: gdal "vector grid nearest" subcommand 5 : * Author: Even Rouault <even dot rouault at spatialys.com> 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2025, Even Rouault <even dot rouault at spatialys.com> 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #include "gdalalg_vector_grid_nearest.h" 14 : 15 : #include <limits> 16 : 17 : //! @cond Doxygen_Suppress 18 : 19 : /************************************************************************/ 20 : /* GDALVectorGridNearestAlgorithm::GDALVectorGridNearestAlgorithm() */ 21 : /************************************************************************/ 22 : 23 12 : GDALVectorGridNearestAlgorithm::GDALVectorGridNearestAlgorithm( 24 12 : bool standaloneStep) 25 : : GDALVectorGridAbstractAlgorithm(NAME, DESCRIPTION, HELP_URL, 26 12 : standaloneStep) 27 : { 28 12 : AddRadiusArg(); 29 12 : AddRadius1AndRadius2Arg(); 30 12 : AddAngleArg(); 31 12 : AddNodataArg(); 32 12 : } 33 : 34 : /************************************************************************/ 35 : /* GDALVectorGridNearestAlgorithm::RunImpl() */ 36 : /************************************************************************/ 37 : 38 5 : std::string GDALVectorGridNearestAlgorithm::GetGridAlgorithm() const 39 : { 40 : std::string ret = 41 5 : CPLSPrintf("nearest:angle=%.17g:nodata=%.17g", m_angle, m_nodata); 42 5 : if (m_radius > 0) 43 : { 44 2 : ret += CPLSPrintf(":radius=%.17g", m_radius); 45 : } 46 : else 47 : { 48 3 : if (m_radius1 > 0) 49 2 : ret += CPLSPrintf(":radius1=%.17g", m_radius1); 50 3 : if (m_radius2 > 0) 51 2 : ret += CPLSPrintf(":radius2=%.17g", m_radius2); 52 : } 53 5 : return ret; 54 : } 55 : 56 : GDALVectorGridNearestAlgorithmStandalone:: 57 : ~GDALVectorGridNearestAlgorithmStandalone() = default; 58 : 59 : //! @endcond