Résumé
Crée la structure de tuile et les dossiers de préparation pour un cache de service de carte ou d’imagerie. Après l’exécution de cet outil, utilisez l’outil 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 ou d’imagerie ArcGIS Server.
Cet outil fonctionne uniquement avec les couches de carte ou d’imagerie dans ArcGIS Enterprise et les services de carte ou d’imagerie dans ArcGIS Server.
L’affichage des données donne de meilleurs résultats avec le format d’image JPEG ou MIXED. Lors de l’utilisation des cartes vectorielles au format 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 publiées au format PNG.
Une fois le cache généré, vous ne pouvez pas modifier le format d'image de cache. Le cache doit d'abord être supprimé avant de passer à un autre format.
Syntaxe
arcpy.server.CreateMapServerCache(input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format})
Paramètre | Explication | Type de données |
input_service | Couche de carte ou d’imagerie à mettre en cache. | Image Service; MapServer |
service_cache_directory | Répertoire parent du cache. Ce répertoire de cache ArcGIS Server doit être inscrit. | String |
tiling_scheme_type | Indique comment la structure de tuilage sera définie. Vous pouvez définir une nouvelle structure de tuile avec cet outil ou accéder à 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écifie la façon dont les tuiles sont mises à l’échelle.
| String |
num_of_scales | Le nombre de niveaux d'échelle à créer dans le cache. Cette option est désactivée si vous créez une liste d'échelles personnalisée. | Long |
dots_per_inch | Résolution en points par pouce (PPP) 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 paraîtra incorrecte. La valeur par défaut est 96. | Long |
tile_size | Spécifie la largeur et la hauteur des tuiles de cache en pixels. Pour un meilleur équilibre entre performance et fonctionnalité, évitez de vous écarter des largeurs standard de 256 sur 256 ou de 512 sur 512.
| String |
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 de la carte 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. Ils ne sont pas représentés sous la forme de fractions. Utilisez plutôt 500 pour représenter une échelle de 1:500, par exemple. | Value Table |
cache_tile_format (Facultatif) | Indique le format des tuiles du cache.
| String |
tile_compression_quality (Facultatif) | Qualité de compression JPEG (1–100). La valeur par défaut est 75 pour le format de tuile JPEG et 0 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) | Indique le format de stockage des tuiles.
| String |
Sortie dérivée
Nom | Explication | Type de données |
out_service_url | L’URL de service de carte en sortie. | Chaîne |
Exemple de code
L'exemple suivant crée la structure de tuile et les dossiers de préparation pour un cache de service de carte à l'aide du type d'échelle STANDARD. Après l'exécution de ce script, exécutez l'outil Gérer des tuiles de cache de serveur de carte pour ajouter des tuiles au cache.
# 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 as 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(str(e))
print("Executed creation of Map server Cache schema ")
report.close()
L'exemple suivant crée la structure de tuile et les dossiers de préparation pour un cache de service de carte à l'aide des échelles de type PERSONNALISE. Après l'exécution de ce script, exécutez l'outil Gérer des tuiles de cache de serveur de carte pour ajouter des tuiles au cache.
# 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 as 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(str(e))
print("Executed creation of map server Cache schema using custom scales")
report.close()
L'exemple suivant crée la structure de tuile et les dossiers de préparation pour un cache de service de carte à l'aide d'une structure de tuile PREDEFINIE. Après l'exécution de ce script, exécutez l'outil Gérer des tuiles de cache de serveur de carte pour ajouter des tuiles au cache.
# 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 as 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(str(e))
print("Executed creation of map server Cache schema using tiling scheme")
report.close()
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?