Créer le cache du serveur de carte (Serveur)
Récapitulatif
Crée la structure de tuile et les dossiers de préparation pour un cache de service de carte ou d'imagerie. 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 ou d'imagerie 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 d'un cache de serveur de carte.
-
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 présentées au format PNG.
-
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.
Syntaxe
Paramètre | Explication | Type de données |
input_service | Service de carte ou d'imagerie à mettre en cache. Cette chaîne contient les informations relatives au serveur et au service. Pour savoir comment construire cette chaîne, ouvrez ArcCatalog, sélectionnez votre service dans l'arborescence du catalogue et notez le texte dans la barre d'outils Emplacement. Remplacez les barres obliques inverses par des barres obliques, par exemple, GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer. | String |
service_cache_directory |
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 tuile avec cet outil ou naviguer vers un fichier de structure de tuile 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 |
dots_per_inch |
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_size |
Largeur et hauteur des tuiles de cache en pixels. La valeur par défaut est 256 par 256. Pour un meilleur équilibre entre performance et fonctionnalité, évitez de dévier des largeurs standard de 256 par 256 ou 512 par 512. | Long |
predefined_tiling_scheme (Facultatif) |
Chemin d'accès à un fichier de structure de tuile prédéfini (généralement nommé 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 |
scales [scales,...] (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. | Value Table |
cache_tile_format (Facultatif) |
Choisissez le format de fichier PNG, 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) |
Détermine le format de stockage des tuiles.
| String |
Exemple de code
Cet exemple crée un cache de carte à l'aide du type d'échelle STANDARD.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using standard tiling schema
# 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, datetime, traceback, string
# Set environment settings
env.workspace = "C:/data"
# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""
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(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 4 scales & default properties for"
serviceName + " 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 "
report.close()
Cet exemple crée un cache de carte à l'aide d'échelles de type PERSONNALISE.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using Custom scales & jpg image format.
# 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
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
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(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 "
serviceName + " 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.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using existing predefined schema
# 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, datetime, traceback, string
# Set environment settings
env.workspace = "C:/data"
# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"
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 (inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 using predefined tiling schema for "
serviceName + " 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 tiling scheme"
report.close()