Créer un cache de serveur de carte (Serveur)

Niveau de licence :BasicStandardAdvanced

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 l'exécution de cet outil, exécutez Gérer des tuiles de cache de serveur de carte pour ajouter des tuiles au cache.

Utilisation

Syntaxe

CreateMapServerCache_server (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ètreExplicationType 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. Ce répertoire de cache ArcGIS Server doit être inscrit.

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.

  • NEWVous définissez une nouvelle structure de tuilage à l'aide des différents autres paramètres de cet outil concernant les niveaux d'échelle, le format d'image, le format de stockage, etc. Il s'agit de l'option par défaut.
  • PREDEFINEDVous spécifiez un fichier .xml de structure de tuile qui existe déjà sur le disque. Vous pouvez créer un fichier de structure de tuile à l'aide de l'outil Génère la structure de tuilage pour le cache du serveur de carte.
String
scales_type

Indiquez comment vous allez définir les échelles des tuiles.

  • STANDARDGénère automatiquement les échelles en fonction du nombre défini dans le paramètre Nombre d'échelles (num_of_scales dans Python). Elle utilisera les niveaux qui augmentent ou réduisent de moitié à partir de 1:1,000,000 et commencera avec le niveau le plus proche de l'étendue de la carte source. Par exemple, si le document ArcMap source présente une étendue de 1:121 000 000 et que trois niveaux d'échelle sont définis, le service de carte crée un cache offrant les niveaux d'échelle de 1:128 000 000, 1:64 000 000 et 1:32 000 000. Il s'agit de l'option par défaut.
  • PERSONNALISEPermet au concepteur du cache d'entrer les échelles voulues.
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 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

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.

  • 128 x 128128 sur 128 pixels
  • 256 x 256256 sur 256 pixels
  • 512 x 512512 sur 512 pixels
  • 1024 x 10241024 sur 1024 pixels
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 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. Ils 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.

  • PNGCrée un format PNG avec différentes profondeurs de couleurs. Les profondeurs de couleurs sont optimisées en fonction de la variation des couleurs et des valeurs de transparence dans une tuile.
  • PNG8Format d'image couleur 8 bits sans perte qui utilise une palette de couleurs indexées et une table de transparences alpha. Chaque pixel stocke une valeur (entre 0 et 255) utilisée pour rechercher la couleur dans la palette de couleurs et la transparence dans la table de transparences alpha. Les images PNG 8 bits sont semblables aux images GIF et génèrent les arrière-plans transparents les mieux pris en charge par la plupart des navigateurs Web.
  • PNG24Format d'image à trois canaux sans perte qui offre de grandes variations de couleurs (16 millions de couleurs) et une prise en charge limitée de la transparence. Chaque pixel contient trois canaux de couleur 8 bits et l'en-tête du fichier stocke la couleur unique qui représente l'arrière-plan transparent. La couleur représentant l'arrière-plan transparent peut être définie dans ArcMap. Les versions d'Internet Explorer antérieures à la version 7 ne prennent pas en charge ce type de transparence. Les caches utilisant le format PNG24 sont sensiblement plus volumineux que ceux qui utilisent le format PNG8 ou JPEG, ils occupent davantage d'espace disque et nécessitent une plus large bande passante pour le service des clients.
  • PNG32Format d'image à quatre canaux sans perte qui offre de grandes variations de couleurs (16 millions de couleurs) et une bonne prise en charge de la transparence. Chaque pixel contient trois canaux de couleurs 8 bits et un canal alpha 8 bits qui représente le niveau de transparence de chaque pixel. Si le format PNG32 gère les pixels partiellement transparents dans l'intervalle entre 0 et 255, l'outil de génération de caches ArcGIS Server ne retranscrit que des pixels complètement transparents (0) ou complètement opaques (255) dans le canal de transparence. Les caches utilisant le format PNG32 sont sensiblement plus volumineux que ceux qui utilisent les autres formats pris en charge, ils occupent davantage d'espace disque et nécessitent une plus large bande passante pour le service des clients.
  • JPEGFormat d'image à trois canaux avec perte qui offre de grandes variations de couleurs (16 millions de couleurs), mais ne prend pas en charge la transparence. Chaque pixel contient trois canaux de couleur 8 bits. Les caches utilisant JPEG permettent de maîtriser la qualité en sortie et la taille.
  • MIXEDCrée un fichier PNG 32 partout où cette transparence est détectée (en d'autres termes, aux endroits où l'arrière-plan du bloc de données est visible). Crée un fichier JPEG pour les autres tuiles. Cela réduit la taille moyenne des fichiers tout en vous fournissant une superposition propre sur d'autres caches.
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.

  • COMPACTRegroupe les tuiles en fichiers volumineux appelés groupes. Ce format de stockage est plus efficace en termes de stockage et de mobilité.
  • EXPLODEDStockez chaque tuile dans un fichier distinct.
String

Exemple de code

Exemple 1 CreateMapServerCache

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()
Exemple 2 CreateMapServerCache

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()
Exemple 3 CreateMapServerCache

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()

Environnements

Cet outil n'utilise aucun environnement de géotraitement

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
6/5/2014