Skip to content

Incoherence sur le zoom #4243

Description

@christophe-ramet

Version

2.17

Description du bug

Sur une nouvelle installation sans configuration, après création d'une observation et clic sur la synthèse sur cette obs, les tuiles de la map ne s'affichent pas.

Comment reproduire le bug

Faire une installation sans configuration. Créer une obs au point, aller dans la synthèse avec le fond de carte par défaut, cliquer sur l'obs.

Analyse

Pas mal de choses semblent ne pas aller:

 1. Paramètre ZOOM_ON_CLICK

Ce paramètre n'est utilisé nulle part dans GeoNature bien que défini dans la configuration. C'est assez confusant.

En plus de ça, son défaut est 18 et pourtant dans default.config.toml.example il est à 16.

2. Zoom max défini en dur dans le code

Dans syntheseModule/synthese-results/synthese-carte/synthese-carte.component.ts SyntheseCarteComponent.ngAfterViewInit, on a un niveau de zoom en dur this._ms.map.fitBounds(tempFeatureGroup.getBounds(), { maxZoom: 18 });

et dans maplist service MapListService.zoomOnSelectedLayer on en a un autre
map.fitBounds(tempFeatureGroup.getBounds(), { maxZoom: 15 });

3. paramètres MAPCONFIG

Deux soucis ici, MAPCONFIG ne représente pas le vrai défaut dans le fichier de défaut sources/GeoNature/config/default_config.toml.example. Dans ce fichier, on trouve des fonds de carte (comme ceux de l'IGN) qui ne sont pas par défaut dans MAPCONFIG.

Par ailleurs, pour résoudre le problème originel de cette issue (tuiles cherchées alors qu'elles n'existent pas), il faudrait modifier la config par défaut pour qu'elle mentionne le niveau de zoom max.

On passerait de :

BASEMAP = [
    {
        "name": "OpenStreetMap",
        "url": "//{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",
        "options": {
            "attribution": "<a href='https://www.openstreetmap.org/copyright' target='_blank'>© OpenStreetMap contributors</a>",
        },
    },
    {
        "name": "OpenTopoMap",
        "url": "//a.tile.opentopomap.org/{z}/{x}/{y}.png",
        "options": {
            "attribution": "Map data: © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap contributors</a>, SRTM | Map style: © <a href='https://opentopomap.org' target='_blank'>OpenTopoMap</a> (<a href='https://creativecommons.org/licenses/by-sa/3.0/' target='_blank'>CC-BY-SA</a>)",
        },
    },
    {
        "name": "GoogleSatellite",
        "layer": "//{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
        "options": {
            "subdomains": ["mt0", "mt1", "mt2", "mt3"],
            "attribution": "© Google Maps",
        },
    },
]

à

BASEMAP = [
    {
        "name": "OpenStreetMap",
        "url": "//{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",
        "maxNativeZoom": 16,
        "options": {
            "attribution": "<a href='https://www.openstreetmap.org/copyright' target='_blank'>© OpenStreetMap contributors</a>",
        },

    },
    {
        "name": "OpenTopoMap",
        "url": "//a.tile.opentopomap.org/{z}/{x}/{y}.png",
        "options": {
            "attribution": "Map data: © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap contributors</a>, SRTM | Map style: © <a href='https://opentopomap.org' target='_blank'>OpenTopoMap</a> (<a href='https://creativecommons.org/licenses/by-sa/3.0/' target='_blank'>CC-BY-SA</a>)",
        },
        "maxNativeZoom": 17,
    },
    {
        "name": "GoogleSatellite",
        "layer": "//{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
        "options": {
            "subdomains": ["mt0", "mt1", "mt2", "mt3"],
            "attribution": "© Google Maps",
        },
        "maxNativeZoom": 15,
    },
]

( Vous pouvez trouver l'explication #3475 (comment) ici)
## Proposition de résolution

Si ça vous semble ok, voilà ce que je propose de faire (je peux le faire) .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions