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) .
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_CLICKCe 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.exampleil est à 16.2. Zoom max défini en dur dans le code
Dans
syntheseModule/synthese-results/synthese-carte/synthese-carte.component.tsSyntheseCarteComponent.ngAfterViewInit, on a un niveau de zoom en durthis._ms.map.fitBounds(tempFeatureGroup.getBounds(), { maxZoom: 18 });et dans
maplist service MapListService.zoomOnSelectedLayeron en a un autremap.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 :
à
( 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) .
ZOOM_ON_CLICK;Je pense que ça permettrait aussi de fermer Version 2.3.0 : Paramétrer le niveau de zoom au clic sur une observation (cf: opentopomap non disponible à zoom important) #838