Résumé
Permet de créer et mettre à jour des tuiles dans un cache de couche de tuiles Web existant (dans ArcGIS Enterprise ou ArcGIS Online), des couches d’images de carte Web dans ArcGIS Enterprise et des services de carte ou d’imagerie mis en cache sur un serveur autonome. Cet outil permet de créer des tuiles, de remplacer des tuiles manquantes, d'actualiser des tuiles devenues obsolètes et de supprimer des tuiles.
Utilisation
L'exécution de cet outil peut prendre du temps pour les caches qui couvrent une grande étendue géographique ou les échelles de carte très grandes. Si l'outil est annulé, la création de tuiles est arrêtée, mais les tuiles existantes ne sont pas supprimées. Cela signifie que vous pouvez annuler l’exécution de l’outil si vous manquez de temps et le réexécuter ultérieurement dans le même cache en définissant le paramètre Mode de mise à jour sur Recréer les tuiles vides (update_mode = "RECREATE_EMPTY_TILES" dans Python).
Syntaxe
arcpy.server.ManageMapServerCacheTiles(input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
Paramètre | Explication | Type de données |
input_service | Couche de tuiles Web ou couche d'images de carte dont vous souhaitez mettre à jour les tuiles de cache. | Image Service; MapServer |
scales [scales,...] | Niveaux d’échelle auxquels vous créez ou supprimez des tuiles lors de l’exécution de cet outil, selon le update_mode. | Double |
update_mode | Le mode de mise à jour du cache.
| String |
num_of_caching_service_instances (Facultatif) | Nombre total d'instances du service System/CachingTools qui seront utilisées pour exécuter cet outil. Vous pouvez augmenter le paramètre Nombre maximum d'instances par machine du service System/CachingTools dans la fenêtre Éditeur de services disponible via une connexion administrateur à ArcGIS Server. Assurez-vous que vos machines serveur peuvent prendre en charge le nombre d'instances sélectionné. Dans le cas d’une connexion à un serveur autonome, le nombre par défaut d’instances correspond à la valeur du paramètre Nombre maximal d’instances du service d’outil de mise en cache. | 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. 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. Si vous ne fournissez aucune valeur pour ce paramètre, l'étendue globale de la carte est utilisée par défaut. | Feature Set |
update_extent (Facultatif) | Étendue rectangulaire dans laquelle créer ou supprimer les tuiles, selon la valeur du paramètre update_mode. Nous vous déconseillons d’entrer des valeurs pour les deux paramètres update_extent et area_of_interest. Si vous entrez des valeurs pour les deux, la valeur du paramètre area_of_interest est utilisée. | Extent |
wait_for_job_completion (Facultatif) | Ce paramètre vous permet de suivre la progression de la tâche en cache exécutée sur le portail.
| Boolean |
Sortie dérivée
Nom | Explication | Type de données |
out_job_url | L’URL en sortie. | String |
Exemple de code
Exemple 1 d’utilisation de l’outil ManageMapServerCacheTiles (script autonome)
Créez ou mettez à jour toutes les tuiles dans le cache à l’aide de l’option RECREATE_ALL_TILES.
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# cache tiles for the scales in the cache tiling scheme.
# Requirements: os, sys, time and 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
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
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.ManageMapServerCacheTiles_server(inputService, scales,
updateMode,
numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 tiles for given schema successfully for " +\
serviceName + " in " + str(elapsedtime) + " sec 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 Map server Cache Tiles "
Exemple 2 d’utilisation de l’outil ManageMapServerCacheTiles (script autonome)
Mettez à jour les tuiles vides pour certaines des échelles à l’aide de l’option RECREATE_EMPTY_TILES.
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate
# empty tiles for one of the default number of scales in the cache
# tiling scheme
# Requirements: os, sys, time and 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
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_EMPTY_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
cacheDir = "c:\\arcgisserver\\arcgiscache\\"
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')
# use "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
updateMode, numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 tiles for scale =" + str(scales[-1]) + "for " +\
serviceName + " at " + cacheDir + " in " + str(elapsedtime) +\
" sec 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 "Rereated Map server Cache Tiles for scale = " + str(scaleValues[-1])
Exemple 3 d’utilisation de l’outil ManageMapServerCacheTiles (script autonome)
Mettez à jour les tuiles à l’aide d’une zone d’intérêt.
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# tiles using given feature class.
# Requirements: os, sys, time and 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
import os
import sys
import time
import datetime
import traceback
import string
# Set environment settings
arcpy.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
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = "C:/data/shp/CaTxFlMaMin.shp"
waitForJobCompletion = "WAIT"
updateExtents = ""
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')
# use "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
updateMode,
numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 tiles for scale =" + str(scales[-1]) + "for " +\
serviceName + "at " + cacheDir + " using specified feature class " +\
areaOfInterest + " in " + str(elapsedtime) + " sec on " + arg2
except Exception, e:
# If an error occurred, print line number and error message
tb = sys.exc_info()[2]
report.write("Failed at \n" "Line %i" % tb.tb_lineno)
report.write(e.message)
report.close()
print "Rereated Map server Cache Tiles"
print "for scale = " + str(scaleValues[-1]) + " using area of Interest"
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui