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
Une fois que vous avez terminé de générer un cache de carte, le service de carte est automatiquement redémarré et commence immédiatement à 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>.
Lorsque vous utilisez l'infrastructure Web ADF, vous ajoutez des services de carte mis en cache à vos applications de la même façon que vous ajoutez n'importe quel autre service de carte. Le contrôle de carte reconnaît si le service est mis en cache et collabore avec le service pour récupérer les tuiles en cache si elles sont disponibles. Si vous superposez les caches et que l'infrastructure Web ADF ne récupère aucune tuile pour l'un des services, il traite ce service comme dynamique.
Après une connexion initiale au serveur SIG, l'infrastructure Web ADF récupère des tuiles directement dans le répertoire de cache virtuel. Pour l'application, il s'agit de la méthode la plus rapide pour obtenir les tuiles. Pour les caches stockés dans un format éclaté, cette méthode est la seule qui permette de récupérer les tuiles.
Si le répertoire de cache virtuel n'est pas disponible ou si le cache est stocké dans un format compact, l'application Web ADF essaie d'obtenir les tuiles du répertoire de cache sur le système de fichiers. Consultez la présentation relative au contrôle de carte pour savoir de quelles façons l'application Web ADF tente de récupérer une tuile qui n'est pas immédiatement disponible par l'intermédiaire du répertoire de cache virtuel.
Si vous affichez un seul service mis en cache dans une application Web et que vous effectuez un panoramique sur une zone dans laquelle aucune tuile n'est présente, l'application n'affiche pas d'image dynamique. A la place, 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, vous pouvez ouvrir l'application dans Mozilla Firefox et cliquer sur Outils > Information sur la page > Médias.
- 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 ressemblent à ceci, votre application réussit à obtenir des tuiles à partir du répertoire de cache virtuel :
http://myServer:8399/arcgiscache/myService/Layers/_alllayers/L00/R00001019/C00000c55.png
- Si les URL que vous voyez ressemblent à ceci, votre application ne parvient pas à obtenir de tuiles du répertoire de cache virtuel, mais elle réussit à récupérer les tuiles du système de fichiers du serveur :
http://myServer:8399/arcgis/services/myService/MapServer?mapname=Electric%20Solutions&level=14&column=2851&row=6544&format=PNG24&time=1191520207507
- 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é.
L'utilisation des caches multi-couches est toujours déconseillée dans les applications Web. Si vous devez activer et désactiver des couches, vous pouvez superposer deux caches fusionnés ou plus pour obtenir le même effet visuel qu'un cache multi-couches. Pour ce faire, utilisez le workflow suivant :
- Placez chaque groupe de couches susceptible de faire partie du cache multi-couches dans sa propre carte. Assurez-vous que la vue générale des cartes est la même.
- Publiez chaque carte sous forme de service de carte.
- Créez un cache fusionné pour chacun des services de carte à l'aide de la même structure de tuilage (il n'est pas nécessaire que les formats d'image soient identiques).
- Ajoutez les services à votre carte en fonction de l'ordre des couches et des transparences souhaités. Les utilisateurs de votre carte seront en mesure d'activer et de désactiver les services.
ArcMap
Pour ajouter des services de carte mis en cache à 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 qui a permis de 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éé.
ArcMap est le client le plus pratique pour l'utilisation de caches multi-couches. En effet, ArcMap est capable de mélanger et d'étiqueter des tuiles en cache multi-couches côté client (contrairement aux applications Web ADF).
ArcGlobe et ArcGIS Explorer
ArcGlobe et ArcGIS Explorer peuvent lire des caches 2D et les draper à la surface du globe. Vous obtiendrez de meilleures performances en créant le cache avec l'une des structures de tuilage intégrées qui sont utilisées par ArcGIS Online, Google Maps et Bing Maps. Si vous ne pouvez pas utiliser l'une de ces structures de tuilage, vous pouvez optimiser les performances en faisant appel aux services de globe d'ArcGIS Server.
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 les applications Web
Pour les applications Web, telles que celles qui sont intégrées aux API ArcGIS pour JavaScript, 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.
Lorsque vous concevez des caches de carte qui superposeront d'autres caches de carte dans une application Web ADF, vous devez suivre certaines règles pour garantir la réussite de la superposition des caches. Reportez-vous à la rubrique Superposition de caches de carte dans Web ADF pour Java pour en savoir plus sur ces conditions.
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.