]> git.openstreetmap.org Git - nominatim.git/commitdiff
avoid interpreting integral numbers as coordinates
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 5 Sep 2023 09:26:47 +0000 (11:26 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 5 Sep 2023 09:26:47 +0000 (11:26 +0200)
There are addresses of type '123 W 345 N, Reigh', where 'W 345 N' is
the actual name of the street.

nominatim/api/v1/helpers.py
test/python/api/test_helpers_v1.py

index 325e5bc629911dc446476c1499499eb641e741dd..6a646e4f6445116908c97f9f1669c783bc1748c3 100644 (file)
@@ -136,10 +136,10 @@ def _deg(axis:str) -> str:
     return f"(?P<{axis}_deg>\\d+\\.\\d+)°?"
 
 def _deg_min(axis: str) -> str:
-    return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>[\\d.]+)?[′']*"
+    return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>[\\d.]+)[′']*"
 
 def _deg_min_sec(axis: str) -> str:
-    return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>\\d+)[′'\\s]+(?P<{axis}_sec>[\\d.]+)?[\"″]*"
+    return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>\\d+)[′'\\s]+(?P<{axis}_sec>[\\d.]+)[\"″]*"
 
 COORD_REGEX = [re.compile(r'(?:(?P<pre>.*?)\s+)??' + r + r'(?:\s+(?P<post>.*))?') for r in (
     r"(?P<ns>[NS])\s*" + _deg('lat') + r"[\s,]+" + r"(?P<ew>[EW])\s*" + _deg('lon'),
index 45f538dea34fb777e90d39969b87fba2ab6c489e..e4862b0d807bb4569ff2161807987b76265c557f 100644 (file)
@@ -11,7 +11,11 @@ import pytest
 
 import nominatim.api.v1.helpers as helper
 
-@pytest.mark.parametrize('inp', ['', 'abc', '12 23', 'abc -78.90, 12.456 def'])
+@pytest.mark.parametrize('inp', ['',
+                                 'abc',
+                                 '12 23',
+                                 'abc -78.90, 12.456 def',
+                                 '40 N 60 W'])
 def test_extract_coords_no_coords(inp):
     query, x, y = helper.extract_coords_from_query(inp)