Changeset 14798

Show
Ignore:
Timestamp:
07/01/08 20:28:44 (5 months ago)
Author:
hobu
Message:

Apply Adam's patch for #2450

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/gdal/frmts/wms/dataset.cpp

    r14288 r14798  
    3535    m_hint.m_valid = false; 
    3636    m_data_type = GDT_Byte; 
     37    m_clamp_requests = true; 
    3738} 
    3839 
     
    101102        m_block_size_x = atoi(block_size_x); 
    102103        m_block_size_y = atoi(block_size_y); 
     104    } 
     105    if (ret == CE_None) { 
     106        const int clamp_requests_bool = StrToBool(CPLGetXMLValue(config, "ClampRequests", "true")); 
     107        if (clamp_requests_bool == -1) { 
     108            CPLError(CE_Failure, CPLE_AppDefined, "GDALWMS: Invalid value of ClampRequests, true / false expected."); 
     109            ret = CE_Failure; 
     110        } else { 
     111            m_clamp_requests = clamp_requests_bool; 
     112        } 
    103113    } 
    104114    if (ret == CE_None) { 
  • trunk/gdal/frmts/wms/rasterband.cpp

    r12183 r14798  
    281281    GDALWMSTiledImageRequestInfo tiri; 
    282282 
    283     const int x0 = MIN(MAX(0, x * nBlockXSize), nRasterXSize); 
    284     const int y0 = MIN(MAX(0, y * nBlockYSize), nRasterYSize); 
    285     const int x1 = MIN(MAX(0, (x + 1) * nBlockXSize), nRasterXSize); 
    286     const int y1 = MIN(MAX(0, (y + 1) * nBlockYSize), nRasterYSize); 
     283    int x0 = MAX(0, x * nBlockXSize); 
     284    int y0 = MAX(0, y * nBlockYSize); 
     285    int x1 = MAX(0, (x + 1) * nBlockXSize); 
     286    int y1 = MAX(0, (y + 1) * nBlockYSize); 
     287    if (m_parent_dataset->m_clamp_requests) { 
     288        x0 = MIN(x0, nRasterXSize); 
     289        y0 = MIN(y0, nRasterYSize); 
     290        x1 = MIN(x1, nRasterXSize); 
     291        y1 = MIN(y1, nRasterYSize); 
     292    } 
     293     
    287294    const double rx = (m_parent_dataset->m_data_window.m_x1 - m_parent_dataset->m_data_window.m_x0) / static_cast<double>(nRasterXSize); 
    288295    const double ry = (m_parent_dataset->m_data_window.m_y1 - m_parent_dataset->m_data_window.m_y0) / static_cast<double>(nRasterYSize); 
  • trunk/gdal/frmts/wms/wmsdriver.h

    r14288 r14798  
    226226    int m_offline_mode; 
    227227    int m_http_max_conn; 
     228    int m_clamp_requests; 
    228229}; 
    229230