Coverage Report

Created: 2025-06-09 08:44

/src/gdal/frmts/wms/minidriver_ogcapicoverage.cpp
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 * Project:  WMS Client Driver
3
 * Purpose:  OGC API coverage
4
 * Author:   Even Rouault
5
 *
6
 ******************************************************************************
7
 * Copyright (c) 2020, Even Rouault
8
 *
9
 * SPDX-License-Identifier: MIT
10
 ****************************************************************************/
11
12
#include "wmsdriver.h"
13
#include "minidriver_ogcapicoverage.h"
14
15
CPLErr
16
WMSMiniDriver_OGCAPICoverage::Initialize(CPLXMLNode *config,
17
                                         CPL_UNUSED char **papszOpenOptions)
18
0
{
19
0
    CPLErr ret = CE_None;
20
21
0
    {
22
0
        const char *base_url = CPLGetXMLValue(config, "ServerURL", "");
23
0
        if (base_url[0] != '\0')
24
0
        {
25
0
            m_base_url = base_url;
26
0
        }
27
0
        else
28
0
        {
29
0
            CPLError(CE_Failure, CPLE_AppDefined,
30
0
                     "GDALWMS, OGCAPICoverage mini-driver: ServerURL missing.");
31
0
            ret = CE_Failure;
32
0
        }
33
0
    }
34
35
0
    return ret;
36
0
}
37
38
CPLErr WMSMiniDriver_OGCAPICoverage::TiledImageRequest(
39
    WMSHTTPRequest &request, const GDALWMSImageRequestInfo &iri,
40
    const GDALWMSTiledImageRequestInfo &)
41
0
{
42
0
    CPLString &url = request.URL;
43
44
0
    url = m_base_url;
45
46
0
    URLSearchAndReplace(&url, "${width}", "%d", iri.m_sx);
47
0
    URLSearchAndReplace(&url, "${height}", "%d", iri.m_sy);
48
0
    URLSearchAndReplace(&url, "${minx}", "%.17g", iri.m_x0);
49
0
    URLSearchAndReplace(&url, "${miny}", "%.17g", iri.m_y1);
50
0
    URLSearchAndReplace(&url, "${maxx}", "%.17g", iri.m_x1);
51
0
    URLSearchAndReplace(&url, "${maxy}", "%.17g", iri.m_y0);
52
    /*URLSearchAndReplace(&url, "${minx_centerpixel}", "%.17g", iri.m_x0 + 0.5 *
53
    (iri.m_x1 - iri.m_x0) / iri.m_sx); URLSearchAndReplace(&url,
54
    "${miny_centerpixel}", "%.17g", iri.m_y1 - 0.5 * (iri.m_y1 - iri.m_y0) /
55
    iri.m_sy); URLSearchAndReplace(&url, "${maxx_centerpixel}", "%.17g",
56
    iri.m_x1 - 0.5 * (iri.m_x1 - iri.m_x0) / iri.m_sx);
57
    URLSearchAndReplace(&url, "${maxy_centerpixel}", "%.17g", iri.m_y0 + 0.5 *
58
    (iri.m_y1 - iri.m_y0) / iri.m_sy);*/
59
60
0
    return CE_None;
61
0
}