Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Jan 23, 2025
1 parent b1f44af commit 348682a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/server/services/wms/qgswmsrenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3154,7 +3154,7 @@ namespace QgsWms
}

// Make sure the map unit tolerance is at least 1 pixel
mapUnitTolerance = std::max( mapUnitTolerance, 1.0 * rct.mapToPixel().mapUnitsPerPixel());
mapUnitTolerance = std::max( mapUnitTolerance, 1.0 * rct.mapToPixel().mapUnitsPerPixel() );

QgsRectangle mapRectangle( infoPoint.x() - mapUnitTolerance, infoPoint.y() - mapUnitTolerance, infoPoint.x() + mapUnitTolerance, infoPoint.y() + mapUnitTolerance );
return ( mapSettings.mapToLayerCoordinates( ml, mapRectangle ) );
Expand Down
38 changes: 26 additions & 12 deletions tests/src/python/test_qgsserver_wms_getfeatureinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,12 @@
QgsPointXY,
)
from qgis.PyQt.QtCore import QVariant, QUrl
from qgis.server import QgsBufferServerRequest, QgsBufferServerResponse, QgsServer, QgsServerRequest
from qgis.server import (
QgsBufferServerRequest,
QgsBufferServerResponse,
QgsServer,
QgsServerRequest,
)
from qgis.testing import unittest, QgisTestCase
from test_qgsserver_wms import TestQgsServerWMSTestBase

Expand Down Expand Up @@ -1362,29 +1367,34 @@ def test_getfeatureinfo_sub_px_tolerance(self):

# create a memory layer with points
fields = QgsFields()
fields.append(QgsField('id', QVariant.Int))
fields.append(QgsField('name', QVariant.String))
layer = QgsMemoryProviderUtils.createMemoryLayer('points', fields, QgsWkbTypes.Point, QgsCoordinateReferenceSystem('EPSG:4326'))
fields.append(QgsField("id", QVariant.Int))
fields.append(QgsField("name", QVariant.String))
layer = QgsMemoryProviderUtils.createMemoryLayer(
"points",
fields,
QgsWkbTypes.Point,
QgsCoordinateReferenceSystem("EPSG:4326"),
)

provider = layer.dataProvider()
self.assertTrue(layer.isValid())

# add some features
f = QgsFeature(fields)
f.setAttribute('id', 1)
f.setAttribute('name', 'point1')
f.setAttribute("id", 1)
f.setAttribute("name", "point1")
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(0, 0)))
provider.addFeature(f)

f = QgsFeature(fields)
f.setAttribute('id', 2)
f.setAttribute('name', 'point2')
f.setAttribute("id", 2)
f.setAttribute("name", "point2")
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(1, 1)))
provider.addFeature(f)

f = QgsFeature(fields)
f.setAttribute('id', 2)
f.setAttribute('name', 'point2')
f.setAttribute("id", 2)
f.setAttribute("name", "point2")
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(-1, -1)))
provider.addFeature(f)

Expand All @@ -1397,12 +1407,16 @@ def test_getfeatureinfo_sub_px_tolerance(self):
# Choose a small extent to trigger the sub-pixel tolerance adjustment
w = 10
w2 = int(w / 2)
request.setUrl(QUrl(f"?SERVICE=WMS&REQUEST=GetFeatureInfo&LAYERS=points&QUERY_LAYERS=points&INFO_FORMAT=application/json&FEATURE_COUNT=1&WIDTH={w}&HEIGHT={w}&CRS=EPSG:4326&STYLES=&BBOX=-1,-1,1,1&X={w2}&Y={w2}&VERSION=1.3.0"))
request.setUrl(
QUrl(
f"?SERVICE=WMS&REQUEST=GetFeatureInfo&LAYERS=points&QUERY_LAYERS=points&INFO_FORMAT=application/json&FEATURE_COUNT=1&WIDTH={w}&HEIGHT={w}&CRS=EPSG:4326&STYLES=&BBOX=-1,-1,1,1&X={w2}&Y={w2}&VERSION=1.3.0"
)
)
response = QgsBufferServerResponse()

server.handleRequest(request, response, project)
body = response.body().data().decode("utf8").replace("\n", "")
self.assertEqual(len(json.loads(body)['features']), 1)
self.assertEqual(len(json.loads(body)["features"]), 1)


if __name__ == "__main__":
Expand Down

0 comments on commit 348682a

Please sign in to comment.