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.
-
Il est utile d'exécuter la mise à jour lorsque vous avez besoin de mettre à jour uniquement une partie du cache du service de globe. Lorsque vous spécifiez les paramètres level_from et level_to, 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 |
server_name |
Machine ArcGIS Server hébergeant le service de globe dont vous gérez les tuiles. | String |
object_name |
Service de globe dont les tuiles sont modifiées. | String |
update_extent (Facultatif) |
Étendue rectangulaire dans laquelle les tuiles doivent être créées ou supprimées, selon le Mode de mise à jour. Vous pouvez saisir les valeurs d'étendue ou sélectionner une étendue à partir d'une source de données existante. | Extent |
in_layers [in_layers,...] |
Sélectionnez les 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 |
thread_count (Facultatif) |
Nombre d'instances de service de globe à utiliser lors de l'exécution de cet outil. Par défaut, le nombre maximal autorisé d'instances est utilisé (la valeur par défaut pour un service ArcGIS Server est 2). Si vous avez un serveur plus puissant, vous pouvez augmenter le nombre maximal autorisé d'instances dans la boîte de dialogue Propriétés de l'objet serveur du service, puis augmenter ce paramètre lorsque vous exécutez l'outil. | Long |
update_mode |
Sélectionnez le mode de mise à jour du cache. Les deux modes disponibles sont les suivants :
| String |
update_feature_class (Facultatif) |
Vous pouvez faire appel à une classe d'entités surfaciques pour gérer les tuiles (créer/mettre à jour) en fonction de l'étendue des entités d'une classe d'entités. Par exemple, si vous mettez en cache un pays, vous pouvez fournir une classe d'entités des principales zones urbaines. Ce faisant, vous demandez que le serveur crée uniquement au préalable des tuiles qui couvrent ces zones urbaines. Le reste des zones peut être mis en cache à la demande si les clients le souhaitent. Ainsi, vous gagnez du temps et de l'espace sur le disque, qui aurait été employé à créer des tuiles inutiles dans des zones rurales. | Feature Class |
ignore_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
Cet exemple crée un cache intégral pour un service de globe.
#ManageGlobeServerCacheTiles 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 # 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 server = "MyServer" globeServerObject = "tstGlobeService" inputLayers = "" extents = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\GlobeCache" threadCount = "2" updateMode = "Recreate All Tiles" pathToFeatureClass = "" ignoreStatus = "IGNORE_COMPLETION_STATUS_FIELD" 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 (server, globeServerObject, extents, updateMode, inputLayers, threadCount, pathToFeatureClass, ignoreStatus) 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 " + globeServerObject + "\n at " + cacheDir + globeServerObject + " 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"