Créer le cache du serveur de carte (Serveur)
Récapitulatif
Crée la structure de tuilage et les dossiers préparatoires pour un cache de service de carte. Après avoir exécuté cet outil, exécutez Gérer le cache des tuiles du serveur de carte pour ajouter des tuiles au cache.
Utilisation
-
Cet outil fonctionne uniquement avec les services de carte ArcGIS Server.
-
Un seul bloc de données peut être mis en cache à la fois. Si vous avez besoin de cartes provenant de plusieurs blocs de données, vous devez créer des services de carte séparés et des caches pour chaque bloc de données.
-
Une fois que vous avez créé la structure de tuilage vous ne pouvez pas la modifier. Toutefois, vous pouvez ajouter ou supprimer des échelles à l'aide de l'outil Gérer les échelles du cache du serveur de carte.
-
Pour de meilleures performances, utilisez des caches fusionnés. Utilisez toujours des caches fusionnés pour les tuiles qui seront consommées dans les applications Web.
-
Les données raster sont mieux servies au format d'image JPEG ou MIXED. Lors de l'utilisation des cartes vectorielles JPEG ou MIXED, utilisez une valeur de qualité de compression élevée (par exemple 90) pour réduire le brouillage des lignes et du texte. Les données vectorielles peuvent également être servies au format PNG, même s'il est préférable d'éviter le format PNG 24 pour les caches qui seront utilisés dans les applications Web.
-
Le format de fichier JPEG n'est pas pris en charge pour les caches multi-couches.
-
Le format de l'image 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 différent.
-
L'option Anti-crénelage lisse les tronçons de lignes et du texte, mais elle offre peu d'amélioration pour les images raster.
Syntaxe
Paramètre | Explication | Type de données |
server_name |
Machine ArcGIS Server hébergeant le service à mettre en cache. | String |
object_name |
Service de carte à mettre en cache. | String |
data_frame |
Bloc de données cartographiques à mettre en cache. | String |
out_folder |
Répertoire parent du cache. Il doit s'agir d'un répertoire de cache ArcGIS Server enregistré. | String |
tiling_scheme_type | Choisissez d'utiliser une nouvelle structure de tuilage ou une structure prédéfinie. Vous pouvez définir une nouvelle structure de tuilage avec cet outil ou naviguer vers un fichier de structure de tuilage prédéfini (.xml). Il est possible de créer une structure prédéfinie à l'aide de l'outil Génère la structure de tuilage pour le cache du serveur de carte.
| String |
scales_type |
Spécifiez la façon dont vous définirez les échelles pour les tuiles.
| String |
num_of_scales |
Nombre de niveaux d'échelle à créer dans le cache. Cette option est désactivée si vous créez une liste personnalisée d'échelles. | 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 |
Largeur, en pixels, des tuiles de cache. La valeur par défaut est 256. Pour un meilleur équilibre entre performance et fonctionnalité, évitez de dévier des largeurs standard de 256 ou 512. | Long |
tile_height |
Hauteur, en pixels, des tuiles de cache. La valeur par défaut est 256. Pour un meilleur équilibre entre performance et fonctionnalité, évitez de dévier des largeurs standard de 256 ou 512. | Long |
map_or_layers (Facultatif) |
Choisissez de générer un cache fusionné ou multi-couches :
| String |
tiling_schema (Facultatif) |
Chemin d'accès à un fichier de structure de tuilage prédéfini (généralement nommée conf.xml). | File |
tile_origin (Facultatif) |
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. | Point |
levels [levels,...] (Facultatif) |
Niveaux d'échelle disponibles pour le cache. Ceux-ci ne sont pas représentés sous la forme de fractions. Utilisez plutôt 500 pour représenter une échelle de 1:500, etc. | String |
Layer [Layer,...] (Facultatif) |
Couches à inclure dans le cache si vous avez choisi l'option MULTI_LAYER comme type de cache. | String |
Antialiasing (Facultatif) | Spécifie si l'anti-crénelage doit être utilisé pour le rendu des tuiles. La sélection 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. Le coût de performance est supérieur lors de l'utilisation de services de carte basés sur MXD (par opposition aux services de carte basés sur MSD qui ont l'anti-crénelage défini dans le fichier MSD). L'anti-crénelage ne présente aucun avantage avec l'imagerie raster. Si la source de votre service de carte est un fichier MSD et que vous avez défini l'anti-crénelage dans le fichier MSD, l'anti-crénelage est appliqué dans votre cache, que vous sélectionnez ou non l'option dans cet outil.
| Boolean |
cache_format (Facultatif) |
Choisissez le format de fichier PNG8, PNG24, PNG32, JPEG ou MIXED pour les tuiles du cache. PNG8 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. La sélection d'une valeur plus élevée entraîne une taille de fichier supérieure avec une image de meilleure qualité. La sélection d'une valeur inférieure entraîne une taille de fichier inférieure avec une image de qualité inférieure. | Long |
storage_format (Facultatif) |
Privilégiez le regroupement de vos tuiles dans des groupes de fichiers avec le format de stockage "Compact", au lieu de stocker chaque tuile en tant que fichier séparé à l'aide du format "Éclaté". Le format de stockage compact est plus efficace en termes de stockage et de mobilité. | String |
use_local_cache_dir | Il est préférable d'écrire les groupes de fichiers dans un répertoire local sur le serveur au moment de la création d'un cache compact, plutôt que directement dans le répertoire de cache partagé. Si vous choisissez cette option, les groupes de fichiers sont copiés dans le répertoire de cache partagé au fur et à mesure qu'ils sont créés. Cette option améliore la performance lorsque plusieurs machines fonctionnent sur la tâche de mise en cache.
| Boolean |
Exemple de code
Cet exemple crée un cache de carte à l'aide du type d'échelle "standard".
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & traceback modules # Any line that begins with a pound sign is a comment and will not be executed # Empty quotes take the default value. # To accept arguments from the command line replace values of variables to # "sys.argv[]" # Import system modules import arcpy from arcpy import env import os, sys, time, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" currentTime = datetime.datetime.now() arg1 = currentTime.strftime("%H-%M") arg2 = currentTime.strftime("%Y-%m-%d %H:%M") file = 'C:/data/report_%s.txt' % arg1 # print results of the script to a report report = open(file,'w') try: starttime = time.clock() result = arcpy.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) finishtime = time.clock() elapsedtime = finishtime - starttime #print messages to a file while result.status < 4: time.sleep(0.2) resultValue = result.getMessages() report.write ("completed " + str(resultValue)) print "Created cache schema with custom scales successfully for " + service + " in " + str(elapsedtime) + " sec \n on " + arg2 except Exception, e: # If an error occurred, print line number and error message tb = sys.exc_info()[2] report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno) report.write(e.message) print "Executed creation of map server Cache schema using custom scales" report.close()
Cet exemple crée un cache de carte à l'aide d'échelles "personnalisées".
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & traceback modules # Any line that begins with a pound sign is a comment and will not be executed # Empty quotes take the default value. # To accept arguments from the command line replace values of variables to # "sys.argv[]" # Import system modules import arcpy from arcpy import env import os, sys, time, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" currentTime = datetime.datetime.now() arg1 = currentTime.strftime("%H-%M") arg2 = currentTime.strftime("%Y-%m-%d %H:%M") file = 'C:/data/report_%s.txt' % arg1 # print results of the script to a report report = open(file,'w') try: starttime = time.clock() result = arcpy.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) finishtime = time.clock() elapsedtime = finishtime - starttime #print messages to a file while result.status < 4: time.sleep(0.2) resultValue = result.getMessages() report.write ("completed " + str(resultValue)) print "Created cache schema with custom scales successfully for " + service + " in " + str(elapsedtime) + " sec \n on " + arg2 except Exception, e: # If an error occurred, print line number and error message tb = sys.exc_info()[2] report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno) report.write(e.message) print "Executed creation of map server Cache schema using custom scales" report.close()
Cet exemple crée un cache de carte à l'aide d'une structure de tuilage prédéfinie.
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & traceback modules # Any line that begins with a pound sign is a comment and will not be executed # Empty quotes take the default value. # To accept arguments from the command line replace values of variables to # "sys.argv[]" # Import system modules import arcpy from arcpy import env import os, sys, time, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" currentTime = datetime.datetime.now() arg1 = currentTime.strftime("%H-%M") arg2 = currentTime.strftime("%Y-%m-%d %H:%M") file = 'C:/data/report_%s.txt' % arg1 # print results of the script to a report report = open(file,'w') try: starttime = time.clock() result = arcpy.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) finishtime = time.clock() elapsedtime = finishtime - starttime #print messages to a file while result.status < 4: time.sleep(0.2) resultValue = result.getMessages() report.write ("completed " + str(resultValue)) print "Created cache schema with custom scales successfully for " + service + " in " + str(elapsedtime) + " sec \n on " + arg2 except Exception, e: # If an error occurred, print line number and error message tb = sys.exc_info()[2] report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno) report.write(e.message) print "Executed creation of map server Cache schema using custom scales" report.close()