Suite

Gérer plusieurs niveaux de zoom maximum dans la brochure

Gérer plusieurs niveaux de zoom maximum dans la brochure


En plus des couches Mapbox, nous ajoutons également des couches de serveurs WMS et ArcGIS hébergés par nos clients pour afficher les données cartographiques qui les concernent. Existe-t-il un moyen de déterminer le zoom maximal d'une couche via le code afin que maxNativeZoom puisse être défini sur cela afin qu'ils s'affichent toujours même à des niveaux de zoom supérieurs à leur zoom maximal?

Une autre chose que j'ai remarquée est que certaines régions du Canada ont des images satellite jusqu'au niveau de zoom 17 tandis que d'autres en ont jusqu'à 18. Lorsque vous vous déplacez vers un emplacement spécifique sur la carte, est-il possible de déterminer quel est le zoom maximum cette zone, puis définissez le maxNativeZoom de manière appropriée ?


Pas sûr que vous puissiez déterminer dynamiquement le zoom natif maximal d'une source de tuile (autre que de le supposer à partir d'erreurs 404), si votre serveur ne fournit pas des métadonnées sur son service où ces informations seraient fournies.

Une solution de contournement serait d'utiliser le plugin Leaflet.TileLayer.Fallback, qui « agirait » commemaxNatifZoomoption dans le sens où lorsque le serveur ne sert pas de tuile (mais renvoie une erreur 404 à la place), le plugin utilisera une tuile d'un niveau de zoom inférieur et l'augmentera en remplacement.

Remplace les tuiles manquantes (erreur HTTP 404 non trouvée) par des tuiles équivalentes agrandies à partir de zooms inférieurs.

En remplaçant les tuiles individuellement au besoin (plutôt que toutes les tuiles au-delà de lamaxNatifZoomniveau), ce plugin couvrirait également naturellement votre deuxième cas d'utilisation où seules certaines zones sont disponibles à des niveaux de zoom plus élevés.

Page de démonstration : http://ghybs.github.io/Leaflet.TileLayer.Fallback/examples/tileLayerFallback-demo.html

pourtant ce plugin serait ne fonctionne pas comme prévu si votre serveur Est-ce que renvoie un espace réservé/une vignette d'erreur lorsqu'aucune image n'est disponible, plutôt que de renvoyer une erreur 404. Le plugin ne serait pas en mesure de voir la différence avec une tuile normale.