Coverage Report

Created: 2025-07-23 09:13

/src/gdal/frmts/wms/minidriver_iip.cpp
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 *
3
 * Project:  WMS Client Driver
4
 * Purpose:  Mini driver for Internet Imaging Protocol (IIP)
5
 * Author:   Even Rouault <even.rouault at spatialys.com>
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2015, Even Rouault <even.rouault at spatialys.com>
9
 *
10
 * SPDX-License-Identifier: MIT
11
 ****************************************************************************/
12
13
#include "wmsdriver.h"
14
#include "minidriver_iip.h"
15
16
WMSMiniDriver_IIP::WMSMiniDriver_IIP()
17
0
{
18
0
}
19
20
WMSMiniDriver_IIP::~WMSMiniDriver_IIP()
21
0
{
22
0
}
23
24
CPLErr WMSMiniDriver_IIP::Initialize(CPLXMLNode *config,
25
                                     CPL_UNUSED char **papszOpenOptions)
26
0
{
27
0
    CPLErr ret = CE_None;
28
29
0
    m_base_url = CPLGetXMLValue(config, "ServerURL", "");
30
0
    if (m_base_url.empty())
31
0
    {
32
0
        CPLError(CE_Failure, CPLE_AppDefined,
33
0
                 "GDALWMS, IIP mini-driver: ServerURL missing.");
34
0
        return CE_Failure;
35
0
    }
36
37
0
    return ret;
38
0
}
39
40
void WMSMiniDriver_IIP::GetCapabilities(WMSMiniDriverCapabilities *caps)
41
0
{
42
0
    caps->m_overview_dim_computation_method = OVERVIEW_FLOOR;
43
0
    caps->m_has_geotransform = false;
44
0
}
45
46
CPLErr
47
WMSMiniDriver_IIP::TiledImageRequest(WMSHTTPRequest &request,
48
                                     const GDALWMSImageRequestInfo & /* iri */,
49
                                     const GDALWMSTiledImageRequestInfo &tiri)
50
0
{
51
0
    CPLString &url = request.URL;
52
0
    url = m_base_url;
53
0
    URLPrepare(url);
54
55
0
    int nTileXCount =
56
0
        ((m_parent_dataset->GetRasterXSize() >>
57
0
          (m_parent_dataset->GetRasterBand(1)->GetOverviewCount() -
58
0
           tiri.m_level)) +
59
0
         255) /
60
0
        256;
61
0
    int numTile = tiri.m_x + tiri.m_y * nTileXCount;
62
0
    url += CPLOPrintf("jtl=%d,%d", tiri.m_level, numTile);
63
0
    return CE_None;
64
0
}