From 8da9400f56f539c72475c93a3307cd1ddffc590d Mon Sep 17 00:00:00 2001 From: nboisteault Date: Fri, 4 Oct 2024 16:52:19 +0200 Subject: [PATCH] IGN search string length must be between 3 and 200 chars This can be tested here: https://data.geopf.fr/geocodage/completion/?text=fo&type=StreetAddress&maximumResponses=10&bbox=3.875336983791886,43.61120191129432,3.8782264085648497,43.613350750790985 --- assets/src/modules/Search.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/assets/src/modules/Search.js b/assets/src/modules/Search.js index b1a6e7b0d6..7265dd65ed 100644 --- a/assets/src/modules/Search.js +++ b/assets/src/modules/Search.js @@ -185,10 +185,11 @@ export default class Search { // Format answers to highlight searched keywords var labrex = this._getHighlightRegEx(); + const searchQuery = document.getElementById('search-query').value; switch (searchConfig.service) { case 'nominatim': $.get(service - , { "query": $('#search-query').val(), "bbox": extent.toBBOX() } + , { "query": searchQuery, "bbox": extent.toBBOX() } , data => { var text = ''; var count = 0; @@ -220,8 +221,12 @@ export default class Search { }, 'json'); break; case 'ign': + if (searchQuery.length < 3 || searchQuery.length > 200) { + lizMap.addMessage('La recherche IGN doit contenir entre 3 et 200 caractères', 'danger', true); + break; + } let mapExtent4326 = transformExtent(mainLizmap.map.getView().calculateExtent(), mainLizmap.projection, 'EPSG:4326'); - let queryParam = '?text=' + $('#search-query').val() + '&type=StreetAddress&maximumResponses=10&bbox=' + mapExtent4326 + let queryParam = '?text=' + searchQuery + '&type=StreetAddress&maximumResponses=10&bbox=' + mapExtent4326 $.getJSON(encodeURI(service + queryParam), data => { let text = ''; let count = 0; @@ -238,7 +243,7 @@ export default class Search { break; case 'google': service.geocode({ - 'address': $('#search-query').val(), + 'address': searchQuery, 'bounds': new google.maps.LatLngBounds( new google.maps.LatLng(extent.top, extent.left), new google.maps.LatLng(extent.bottom, extent.right)