Modalités d'utilisation du cache de carte par les clients
Cette rubrique se compose de trois parties. La première section porte sur la façon dont les applications ArcGIS accèdent aux tuiles et les utilisent dans un cache de carte. La deuxième partie explique comment ces applications stockent les tuiles pour les utiliser ultérieurement. La dernière section décrit comment superposer des caches de carte dans les applications ArcGIS.
Comment les applications accèdent au cache et l'utilisent
Lorsque vous définissez une structure de tuilage pour votre service de carte, il essaie immédiatement d'utiliser le cache. Toutes les applications ArcGIS capables d'afficher un service de carte utilisent le cache, même si la façon dont les tuiles sont récupérées et utilisées varie selon les applications.
Applications Web
Lorsque vous développez avec les API ArcGIS pour JavaScript, Flex et Silverlight, vous utilisez une classe spécifique pour indiquer que vous vous connectez à un service de carte tuilé (mis en cache). Par exemple, avec l'API JavaScript, vous utilisez ArcGISTiledMapServiceLayer pour vous connecter à un service mis en cache. Lorsque vous utilisez le service mis en cache, les tuiles sont récupérées du répertoire de cache par des appels REST vers le service de carte. La demande de tuiles prend la forme http://<URL du service de carte>/tile/<niveau>/<ligne>/<colonne>.
Si vous affichez un seul service mis en cache dans une application Web et que vous effectuez un panoramique sur une zone qui ne contient aucune tuile, l'application n'affiche pas d'image dynamique et rien n'apparaît. Pour être certain de voir une carte lorsque vous effectuez un panoramique sur une zone non mise en cache, activez la mise en cache à la demande.

Si la carte apparaît plus lentement qu'elle ne le devrait, examinez les URL des images de la carte pour vérifier que l'application récupère des tuiles. Pour ce faire, ouvrez l'application dans Mozilla Firefox 4 (ou version ultérieure) et cliquez sur Firefox > Développeur Web > Console Web. Lorsque la console apparaît, cliquez sur le bouton Net, puis effectuez un zoom sur la parcelle ou déplacez-la.
Si les URL que vous voyez ressemblent à ceci, votre application réussit à obtenir des tuiles à partir de demandes REST :
http://myServer/ArcGIS/rest/services/myService/MapServer/tile/10/1723/3495.jpg
Si les URL que vous voyez suivent un autre format pour vos cartes de type image, votre application récupère la tuile d'une manière moins efficace ou le cache n'est pas utilisé.
ArcMap
Pour ajouter des services de carte mis en cache dans ArcMap, utilisez le bouton Ajouter des données tout comme vous le feriez pour n'importe quel autre service de carte. Vous pouvez afficher un cache dans ArcMap de deux façons :
- Accédez au cache par l'intermédiaire d'un service de carte. Pour afficher un cache de cette façon, accédez au serveur SIG et au service de carte utilisé pour créer le cache. Dans ce scénario, ArcMap établit une connexion initiale au serveur SIG pour déterminer si le service possède un cache. ArcMap récupère ensuite des tuiles du répertoire de cache sur le système de fichiers du serveur.
- Accédez au cache sous forme de jeu de données raster. Pour afficher un cache de cette façon, accédez au répertoire qui contient les tuiles en cache et choisissez d'ajouter le jeu de données à ArcMap. Le cache est représenté avec la même icône que celle utilisée pour ajouter tous les autres raster à l'aide du bouton Ajouter des données. Un cache auquel vous avez accédé sous forme de raster est en lecture seule et ne peut pas être interrogé. L'avantage de ce type de cache est qu'il n'est pas lié à un service de carte et qu'il peut être affiché lorsqu'il est déconnecté du serveur, tant que vous pouvez encore accéder au répertoire de cache.
Lorsqu'une demande est effectuée pour une tuile à une échelle qui correspond exactement à un niveau d'échelle dans le cache, le service de carte renvoie directement la tuile. La plupart du temps, les demandes ne correspondent pas exactement aux niveaux d'échelle du cache. Dans ce cas, ArcMap demande généralement la tuile du niveau d'échelle suivant le plus proche et la ré-échantillonne pour qu'elle corresponde à l'échelle demandée. Ce rééchantillonnage est encore beaucoup plus rapide que la génération dynamique d'une tuile. Toutefois, l'image qui en résulte est différente de la tuile originale. En raison de ce rééchantillonnage, les étiquettes de carte mises en cache peuvent être difficiles à lire à certaines échelles dans ArcMap. Pour optimiser les résultats, affichez la carte aux échelles (ou à des échelles proches) de celles à partir desquelles le cache a été créé.
ArcGlobe et ArcGIS Explorer
ArcGlobe et ArcGIS Explorer peuvent lire des caches 2D et les draper à la surface du globe. Vous obtiendrez des performances optimales si vous construisez le cache avec la structure de tuilage ArcGIS Online/Google Maps/Bing Maps. Si vous ne pouvez pas utiliser l'une de ces structures de tuilage, vous obtiendrez des performances optimales en faisant appel aux services de globe.
Vous pouvez par exemple ajouter un service de carte à ArcGlobe lorsque vous avez créé un cache de carte 2D et que vous souhaitez créer un cache de globe 3D identique à partir du cache 2D. Dans ce scénario, vous souhaitez simplement générer le cache et non pas accéder au globe.
Mise en cache locale de couches sur le client
ArcMap, ArcGIS Explorer et ArcGlobe conservent tous des caches locaux des tuiles auxquelles vous avez accédé. Lorsque vous revenez sur ces zones en effectuant un zoom et un déplacement, l'application utilise le cache local et n'a pas à récupérer à nouveau les tuiles du serveur.
Vous pouvez choisir d'enregistrer le cache local sur le disque pour des sessions futures ou d'utiliser le cache local pour la session courante uniquement.
Vous pouvez également choisir de ne pas mettre en cache localement les tuiles. Bien que cela vous fasse perdre les avantages liés à la mise en cache locale, vous pouvez ainsi être certain de toujours obtenir la tuile la plus récente du serveur.
Il est possible que l'administrateur de serveur ait désactivé la mise en cache locale de la couche, ce qui vous permet également de toujours récupérer la tuile la plus récente. Dans ce cas, les autres options d'enregistrement du cache localement ne sont pas disponibles.
Si l'administrateur de serveur met à jour une zone du cache de serveur que vous avez déjà affichée, vous devez effacer votre cache local pour voir les changements. ArcMap, ArcGIS Explorer et ArcGlobe ne peuvent pas détecter si un cache a été mis à jour. Si vous êtes administrateur de serveur, vous devez avertir vos utilisateurs que des données actualisées sont disponibles afin qu'ils sachent qu'ils doivent effacer leur cache.
Superposition de caches
Lorsque vous concevez des caches de carte qui seront superposés à d'autres caches de carte, vous devez prendre en compte certains facteurs importants en fonction de l'application que vous utiliserez pour afficher les caches.
Superposition de caches de carte dans des applications Web
Pour les applications Web, telles que celles qui sont intégrées aux API ArcGIS pour JavaScript, Flex et Silverlight, le système de coordonnées et la taille des tuiles doivent correspondre lorsque vous superposez des caches. Il est également recommandé de faire correspondre autant d'échelles que possible.
La méthode la plus simple pour parvenir à ce résultat est de faire correspondre les structures de tuilage pour les deux caches, puis de créer uniquement les tuiles aux échelles appropriées à chaque cache. De cette façon, vous vous assurez que vous avez fait correspondre le système de coordonnées et la taille des tuiles et que le logiciel reconnaît que les deux caches ont des échelles en commun.
Superposition de caches de carte dans ArcMap
Vous pouvez superposer n'importe quel nombre de caches de carte dans ArcMap. Les caches n'ont pas besoin d'avoir les mêmes structures de tuilage ou projections. Toutefois, en raison du rééchantillonnage et de la reprojection effectués par ArcMap, l'utilisation de structures de tuilage et de projections équivalentes peut contribuer à l'amélioration des performances et de la qualité esthétique de votre carte.
Forcer un affichage dynamique
Il se peut que vous souhaitiez obliger le service à ignorer le cache et à effectuer un affichage dynamique, même si des tuiles sont disponibles à certains niveaux. Supposons, par exemple, que vous développiez une application Web avec les API WebArcGIS. Vous possédez une carte mise en cache à partir des niveaux de zoom de 0 à 15, mais qui doit être affichée dynamiquement à partir des niveaux 16 à 19. Cela peut être le cas si vous souhaitez afficher des données en temps réel à grande échelle ou si la carte couvre une surface trop vaste pour être mise en cache à grande échelle.
La solution consiste alors à activer les couches dynamiques sur le serveur et à préciser dans vos demandes de carte, à des échelles comprises entre 16 et 19, que vous souhaitez utiliser les couches dynamiques. Dans le cas contraire, le service renverra une carte créée à partir des tuiles disponibles, laquelle sera vide dans les zones dépourvues de tuiles.