Générer le cache du serveur de carte (Serveur)
Récapitulatif
Génère un cache de tuiles d'images statiques pour un service de carte ArcGIS Server.
![Legacy Legacy](rsrc/legacy.png)
C'est un outil déconseillé. Le nouveau workflow consiste à utiliser Créer un cache de serveur de carte pour initialiser le cache, puis Gérer des tuiles de cache de serveur de carte pour ajouter des tuiles au cache.
Utilisation
-
Cet outil fonctionne uniquement avec les services de carte ArcGIS Server.
-
Avant d'exécuter cet outil, configurez le service de carte de manière à utiliser le plus grand nombre d'instances possible. Cela accélère considérablement la génération du cache.
-
Un seul bloc de données peut être mis en cache à la fois. Si d'autres blocs de données sont nécessaires, des caches distincts associés à des services de carte distincts doivent être générés.
-
La structure de tuilage définit la manière dont le client doit faire référence aux tuiles dans le cache. Il est possible de créer une nouvelle structure de tuilage ou d'utiliser une structure existante à l'aide de l'outil Générer la structure de tuilage pour le cache du serveur de carte.
-
Utilisez les caches fusionnés pour la plupart des cas. Toutes les couches de la carte sont rassemblées dans des images pour chaque niveau d'échelle spécifié, puis fractionnées en de nombreuses tuiles.
-
Utilisez des caches multi-couches dans les cas où vous souhaitez basculer entre les couches.
-
Le paramètre Nombre d'échelles est le nombre de différentes échelles cartographiques pour lequel l'outil crée des couches dans le cache.
-
Le calcul de niveaux d'échelle cartographique importants pour les très grandes étendues de carte (telles qu'un grand état, province ou pays) peut nécessiter beaucoup de temps de création. Par exemple, calculer une taille de tuile pour des échelles cartographiques supérieures à 1:100 000 pour toute l'Amérique du Nord.
-
L'avantage principal du recours à la compression d'image dans le cache est la réduction de la taille des tuiles d'image pour améliorer la performance sur le réseau. Étant donné qu'une quantité de données moindre est transmise entre le client et le serveur, il est possible de mettre en cache des jeux de données raster continus (de l'ordre de plusieurs téraoctets) et de les servir rapidement à un client pour l'affichage. La taille considérablement réduite du cache sur le disque est un avantage supplémentaire.
-
Lorsque vous utilisez cet outil pour ajouter des niveaux supplémentaires (échelles) à un cache existant, assurez-vous de spécifier le même facteur de compression que celui utilisé pour les niveaux de départ.
-
Le format JPEG est plus efficace avec les données raster. En cas d'utilisation avec des données vectorielles, les lignes et le texte peuvent être brouillés.
-
Le format de fichier JPEG n'est pas pris en charge pour les caches multi-couches.
-
Le format de tuile de cache ne peut pas être modifié une fois le cache généré. Le cache doit être supprimé avant de basculer vers un format de fichier différent.
-
Pour augmenter les performances de la transmission en continu des tuiles de cache aux clients sélectionnez le format d'image JPEG. Pour la meilleure combinaison de performance et prise en charge de transparence, sélectionnez le format d'image PNG8.
-
L'option Anti-crénelage lisse les tronçons de lignes et du texte, mais elle offre peu d'améliorations pour les images raster.
-
Cet outil n'accepte aucun paramètre d'environnement spécifié.
Syntaxe
Paramètre | Explication | Type de données |
server_name |
Nom d'hôte du serveur ArcGIS à utiliser pour générer le cache. | String |
object_name |
Nom du service de carte à utiliser pour générer le cache. | String |
data_frame |
Bloc de données des cartes à mettre en cache. Assurez-vous que vous sélectionnez le même bloc de données que pour votre service de carte. | String |
out_folder |
Répertoire parent de ce cache de service de carte. | String |
tiling_scheme_type |
Choisissez d'utiliser une nouvelle structure de tuilage ou une structure prédéfinie. Cet outil vous permet de définir une nouvelle structure de tuilage, ou de charger un fichier de structure prédéfinie (.xml). Pour créer une structure prédéfinie, vous pouvez exécuter l'outil de géotraitement Génère la structure de tuilage pour le cache du serveur de carte. NEW est le format par défaut. | Boolean |
scales_type |
Définissez le niveau d'échelle
| Boolean |
num_of_scales |
Nombre de niveaux d'échelle à créer dans le cache. | Long |
dpi |
Résolution en points par pouce du périphérique en sortie prévu. Si la valeur PPP spécifiée ne correspond pas à la résolution du périphérique en sortie, l'échelle de la tuile de carte semble incorrecte. La valeur par défaut est 96. | Long |
tile_width |
La largeur, en pixels, des tuiles de carte en sortie. Une faible largeur améliore les performances de l'application qui demande des tuiles au cache. En effet, une quantité de données moins importante est dans ce cas transmise. En revanche, une taille de tuile réduite augmente la taille du cache et allonge le délai de création. La largeur de tuile par défaut est 512. | Long |
tile_height |
La hauteur, en pixels, des tuiles de carte en sortie. Une faible hauteur améliore les performances de l'application qui demande des tuiles au cache. En effet, une quantité de données moins importante est dans ce cas transmise. En revanche, une taille de tuile réduite augmente la taille du cache et allonge le délai de création. La hauteur de tuile par défaut est 512. | Long |
map_or_layers (Facultatif) |
Choisissez de générer un cache fusionné ou multi-couches :
| Boolean |
tiling_schema (Facultatif) |
Chemin d'une structure de tuilage prédéfinie. | String |
tile_origin (Facultatif) |
Spécifiez l'origine (angle supérieur gauche) de la structure de tuilage dans les coordonnées de la référence spatiale de la carte source. L'étendue du document ArcMap source doit être comprise dans (sans devoir forcément coïncider avec) cette région. | String |
levels Scale; Scale... (Facultatif) |
Echelles auxquelles le service de carte doit être mis en cache. | String |
layer Layer; Layer... (Facultatif) |
Couches à inclure dans le cache si vous avez choisi l'option MULTI_LAYER comme type de cache. | String |
thread_count (Facultatif) |
Nombre d'instances de serveur de carte à utiliser lors de la génération du cache. | Long |
Antialiasing (Facultatif) |
Active ou non l'anti-crénelage pour le rendu des tuiles. L'activation de l'anti-crénelage permet de lisser les tronçons de lignes, les bordures et le texte. Cette option a un coût en termes de performance. Elle n'apporte aucun bénéfice sur les données raster. | Boolean |
cache_format (Facultatif) |
Choisissez le format de fichier PNG8, PNG24, PNG32 ou JPEG pour les tuiles du cache. PNG24 est le format par défaut.
| String |
tile_compression_quality (Facultatif) |
Entrez une valeur comprise entre 1 et 100 pour définir la qualité de compression JPEG. La valeur par défaut est 75 pour le format de tuile JPEG et zéro pour les autres formats. La compression est uniquement prise en charge pour le format JPEG. Le niveau de compression dépend des données, mais vous pouvez également le contrôler en changeant la qualité de compression. La sélection d'une valeur supérieure amoindrit la compression et augmente la qualité de l'image. La sélection d'une valeur inférieure donne une compression accrue et une qualité d'image moindre. | Long |
Exemple de code
# Script Name: Generate Fused Map Server Cache
# Description: Generates a fused map server cache using PNG8 image format
# Uncomment sys.argv[] lines to accept arguments from the command line.
# Import standard library modules
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
# Set the path to the cache.
# Example: \\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\
out_folder = "\\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\"
#out_folder = sys.argv[1]
# Set the SOM server name
# Example: "mySOM"
server_name = "mySOM"
#server_name = sys.argv[2]
# Set the object_name
# Example: "MyServiceFolder/MyService"
object_name = "MyServiceFolder/MyService"
#object_name = sys.argv[3]
# Set the data frame
# Example: "Layers"
data_frame = "Layers"
#data_frame = sys.argv[4]
# Set the map cache tiling origin
# Example: "-180 90"
tile_origin = "-180 90"
#tile_origin = sys.argv[5]
# Set the scale levels for the cache.
# Example: "2000000;500000;250000"
scales = "2000000;500000;250000"
#scales = sys.argv[6]
# Set the layers to cache.
# Example: "My First Layer;My Second Layer;My Third Layer"
layers = "My First Layer;My Second Layer;My Third Layer"
#layers = sys.argv[7]
# Set number of instances to use while updating the cache
# Example: "3"
thread_count = "3"
#thread_count = sys.argv[8]
# Set cache tile image format.
# Example: "PNG8"
cache_format = "PNG8"
#layers = sys.argv[9]
# Non-argument variable declarations
tiling_scheme_type = "NEW"
tiling_schema = ""
scales_type = "STANDARD"
num_of_scales = "3"
dpi = "96"
tile_width = "512"
tile_height = "512"
map_or_layers = "FUSED"
antialiasing = "ANTIALIASING"
tile_compression_quality = "0"
try:
print 'Starting Cache Generation'
gp.GenerateMapServerCache(server_name, object_name, data_frame, out_folder, tiling_scheme_type, scales_type, num_of_scales, dpi, tile_width, tile_height, map_or_layers, tiling_schema, tile_origin, scales, layers, thread_count, antialiasing, cache_format, tile_compression_quality)
print 'Finished Cache Generation'
except:
gp.AddMessage(gp.GetMessages(2))
print gp.GetMessages(2)