From c20ebf3d639a2810f49fc221163abab9e7fefd23 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Tue, 1 Oct 2024 16:10:52 +0200 Subject: [PATCH] add more tags and filter more restrictively --- backend/deployment | 2 +- backend/src/constants.py | 2 +- backend/src/parameters/amenity_selectors.yaml | 62 ++++++++++++++++++- backend/src/utils/landmarks_manager.py | 11 +++- .../.github/workflows/build_app_android.yaml | 2 +- 5 files changed, 72 insertions(+), 7 deletions(-) diff --git a/backend/deployment b/backend/deployment index 8927f27..bb27ca2 160000 --- a/backend/deployment +++ b/backend/deployment @@ -1 +1 @@ -Subproject commit 8927f278f32bf0eca169ce4b13fbde8a4ed57274 +Subproject commit bb27ca2c8687342cc38466fa2d443c69512cbd46 diff --git a/backend/src/constants.py b/backend/src/constants.py index 64dceb7..319f672 100644 --- a/backend/src/constants.py +++ b/backend/src/constants.py @@ -16,7 +16,7 @@ OSM_CACHE_DIR = Path(cache_dir_string) import logging # if we are in a debug session, set verbose and rich logging -if os.getenv('DEBUG', False): +if os.getenv('DEBUG', "false") == "true": from rich.logging import RichHandler logging.basicConfig( level=logging.DEBUG, diff --git a/backend/src/parameters/amenity_selectors.yaml b/backend/src/parameters/amenity_selectors.yaml index 4f6b223..2f3c995 100644 --- a/backend/src/parameters/amenity_selectors.yaml +++ b/backend/src/parameters/amenity_selectors.yaml @@ -1,3 +1,6 @@ +# Tags were picked mostly arbitrarily, based on the OSM wiki and the OSM tags page. +# See https://taginfo.openstreetmap.org for more inspiration. + nature: leisure: park geological: '' @@ -11,7 +14,24 @@ nature: - alpine_hut - viewpoint - zoo - waterway: waterfall + - resort + - picnic_site + water: + - pond + - lake + - river + - basin + - stream + - lagoon + - rapids + waterway: + - waterfall + - river + - canal + - dam + - dock + - boatyard + shopping: shop: @@ -23,10 +43,50 @@ sightseeing: - museum - attraction - gallery + - artwork + - aquarium + historic: '' amenity: - planetarium - place_of_worship - fountain + - townhall water: - reflecting_pool + bridge: + # needs to be in quotes because it gets interpreted as True otherwise + - 'yes' + - aqueduct + - viaduct + - boardwalk + - cantilever + - abandoned + building: + - church + - chapel + - mosque + - synagogue + - ruins + - temple + - government + - cathedral + - castle + - museum + + + + +# to be used later on +restauration: + shop: + - coffee + - bakery + - restaurant + - pastry + amenity: + - restaurant + - cafe + - ice_cream + - food_court + - biergarten diff --git a/backend/src/utils/landmarks_manager.py b/backend/src/utils/landmarks_manager.py index 9a61c8a..68dcb2e 100644 --- a/backend/src/utils/landmarks_manager.py +++ b/backend/src/utils/landmarks_manager.py @@ -10,7 +10,8 @@ from structs.landmark import Landmark from .take_most_important import take_most_important import constants - +# silence the overpass logger +logging.getLogger('OSMPythonTools').setLevel(level=logging.CRITICAL) class LandmarkManager: @@ -206,11 +207,15 @@ class LandmarkManager: query = overpassQueryBuilder( bbox = bbox, elementType = ['way', 'relation'], + # selector can in principle be a list already, + # but it generates the intersection of the queries + # we want the union selector = sel, - # conditions = [], + conditions = ['count_tags()>5'], includeCenter = True, out = 'body' ) + self.logger.debug(f"Query: {query}") try: result = self.overpass.query(query) @@ -336,7 +341,7 @@ def dict_to_selector_list(d: dict) -> list: for key, value in d.items(): if type(value) == list: val = '|'.join(value) - return_list.append(f'{key}~"{val}"') + return_list.append(f'{key}~"^({val})$"') elif type(value) == str and len(value) == 0: return_list.append(f'{key}') else: diff --git a/frontend/.github/workflows/build_app_android.yaml b/frontend/.github/workflows/build_app_android.yaml index 074e835..14df1a7 100644 --- a/frontend/.github/workflows/build_app_android.yaml +++ b/frontend/.github/workflows/build_app_android.yaml @@ -42,7 +42,7 @@ jobs: - name: Load secrets from github run: | echo "${{ secrets.ANDROID_SECRET_PROPERTIES_BASE64 }}" | base64 -d > secrets.properties - echo "${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}" | base64 -d > fastlane/google-key.json + echo "${{ secrets.ANDROID_GOOGLE_PLAY_JSON_BASE64 }}" | base64 -d > google-key.json echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > release.keystore working-directory: android