Gérer le cache des tuiles du serveur de globe (Serveur)
Récapitulatif
Crée et actualise des tuiles dans un cache de service de globe existant. Cet outil permet de créer des tuiles ou de remplacer des tuiles manquantes, d'actualiser les tuiles devenues obsolètes ou d'ajouter de nouvelles tuiles. Toutes ces actions peuvent être définies par des étendues rectangulaires ou par une classe d'entités surfaciques. Lorsque vous créez des tuiles, vous pouvez choisir de créer des tuiles vides uniquement ou de recréer toutes les tuiles.
Utilisation
-
Cet outil est utilisé pour mettre à jour un cache de serveur de globe existant. Pour mettre à jour un cache, spécifiez le serveur ArcGIS Server qui héberge le service de globe. L'outil répertorie automatiquement tous les services de globe disponibles sur ce serveur.
-
L'exécution de la mise à jour sans spécifier d'étendue met à jour l'étendue entière du service.
-
Lorsque vous spécifiez les paramètres level_from et level_to des couches en entrée, veillez à préciser tous les niveaux auxquels vous souhaitez générer des tuiles. Le paramètre level_from définit le niveau de détail le plus bas auquel vous voulez que votre cache de données commence. Le paramètre level_to définit la plus haute résolution que vous souhaitez que votre mise en cache de données adopte.
Syntaxe
Paramètre | Explication | Type de données |
service | Service de globe dont vous souhaitez mettre à jour les tuiles de 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)/Seattle.GlobeServer. | String |
update_extent (Facultatif) |
Etendue rectangulaire dans laquelle les tuiles doivent être créées ou supprimées, selon la valeur du paramètre update_mode. Vous pouvez saisir les valeurs d'étendue ou sélectionner une étendue à partir d'une source de données existante. | Extent |
in_layers [[layer, level_from, level_to],...] |
Couches à inclure dans le cache. Pour chaque couche, vous devez fournir un paramètre level_from, qui est le niveau de détail auquel commencer à mettre en cache la couche et un paramètre level_to, qui est le niveau de détail auquel terminer la mise en cache de la couche. Si vous utilisez les niveaux de détail les plus petits et les plus grands pour level_from et level_to respectivement, un cache intégral est créé pour la couche. | Value Table |
update_mode |
Définit le mode de mise à jour du cache. Les deux modes disponibles sont les suivants :
| String |
num_of_caching_service_instances (Facultatif) |
Nombre total d'instances du service des outils de mise en cache du dossier système que vous souhaitez utiliser pour exécuter cet outil. Vous pouvez augmenter le nombre maximum d'instances par machine du service des outils de mise en cache du dossier système en ouvrant la fenêtre Editeur de services via une connexion administrateur à ArcGIS Server. Assurez-vous que vos machines serveur peuvent prendre en charge le nombre d'instances sélectionné. | Long |
area_of_interest (Facultatif) |
Définit une zone d'intérêt pour contraindre l'emplacement où les tuiles seront créées ou supprimées. Il peut s'agir d'une classe d'entités ou d'une entité que vous définissez de manière interactive dans ArcMap. Ce paramètre est utile si vous souhaitez gérer des tuiles pour les zones de forme irrégulière. Il permet également de mettre certaines zones en cache et de conserver telles quelles les zones moins visitées qui n'ont pas été mises en cache. | Feature Set |
track_status (Facultatif) | Ce paramètre vous permet de suivre le statut de la mise en cache si vous créez des tuiles selon les limites de classe d'entités (reportez-vous au paramètre update_feature_class).
| Boolean |
Exemple de code
Crée des tuiles de cache pour un service de globe.
#ManageGlobeServerCacheTiles For ArcGIS Server 10.1 Beta example (stand-alone script)
# Name: ManageGlobeServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to update the
# globe map server cache tiles
# Requirements: os, sys, time & traceback modules
# Author: ESRI
# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default values
# 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)"
globeServiceName = "tstGlobeService.GlobeService"
globeService = connectionFile + "\\" + server + "\\" + globeServiceName
inputLayers = ""
updateExtents = ""
updateMode = "RECREATE_ALL_TILES"
numOfCachingServiceInstances = "2"
areaOfInterest = ""
ignoreStatus = "DO_NOT_TRACK_STATUS"
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.ManageGlobeServerCacheTiles_server (globeService, inputLayers,
updateMode,
numOfCachingServiceInstances,
areaOfInterest,
ignoreStatus, updateExtents)
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 the GlobeServer cache successfully for mapservice "
globeService + "\n 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)
report.close()
print "Created the globe server cache successfully"