Administrar teselas de caché de servidor de mapas (Servidor)

Nivel de licencia:BasicStandardAdvanced

Resumen

Crea y actualiza las teselas en una caché del servicio de mapas o imágenes existente. Esta herramienta se utiliza para crear teselas nuevas, reemplazar teselas faltantes, sobrescribir teselas desactualizadas o eliminar teselas.

Uso

Sintaxis

ManageMapServerCacheTiles_server (input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
ParámetroExplicaciónTipo de datos
input_service

El servicio de mapas o de imágenes cuyas teselas de caché desea actualizar.

Esta es una cadena de caracteres que contiene la información del servidor y de servicios. Para ver cómo construir esta cadena, abra ArcCatalog, seleccione el servicio en el árbol Catálogo y tenga en cuenta el texto en la barra de herramientas Ubicación. A continuación, cambie las barras invertidas por barras normales, por ejemplo, GIS Servers/arcgis en MYSERVER (admin)/USA.MapServer.Servidor de mapas MapServer.

String
scales

Los niveles de escala en los cuales creará o eliminará teselas cuando ejecute esta herramienta, según el Modo actualizar.

Double
update_mode

El modo para actualizar la caché.

  • RECREAR_TESELAS_VACÍASSolo se crearán teselas que estén vacías. Las teselas existentes se dejarán sin cambios.
  • RECREAR_TODAS_LAS_TESELASLas teselas existentes se sustituirán y se agregarán teselas nuevas si la extensión ha cambiado.
  • ELIMINAR_TESELASLas teselas se eliminarán de la caché. La estructura de la carpeta de caché no se eliminará. Si desea eliminar toda la caché, que incluye la estructura de carpetas, utilice la herramienta Eliminar caché del mapa del servidor.
String
num_of_caching_service_instances
(Opcional)

El número total de casos del servicio System/CachingTools que desea dedicar a ejecutar esta herramienta. Puede aumentar la cantidad máxima de instancias por equipo del servicio System/CachingTools utilizando la ventana Editor de servicio disponible a través de una conexión administrativa a ArcGIS Server. Asegúrese de que los equipos de servidor son compatibles con el número de instancias elegidos.

Long
area_of_interest
(Opcional)

Define un área de interés para restringir dónde se van a crear o eliminar las teselas. Esta puede ser una clase de entidad o puede ser una entidad que usted defina de forma interactiva en ArcMap. Este parámetro es útil si desea administrar teselas para áreas con formas irregulares. También es útil en situaciones donde desea almacenar en la caché algunas áreas y dejar sin almacenar las áreas menos visitadas.

Si no proporciona un valor para este parámetro, la opción predeterminada es utilizar la extensión completa del mapa.

Feature Set
update_extent
(Opcional)

La extensión rectangular en la cual se crearán o eliminarán teselas, según el valor del parámetro Modo actualizar. No se recomienda que proporcione los valores para actualiza_extensión y área_de_interés. Si se proporcionan los valores para ambos parámetros, se utilizará el valor de área_de_interés.

Extent
wait_for_job_completion
(Opcional)

Este parámetro le permite ver el progreso de la labor de la caché que se ejecuta en el servidor.

  • ESPERAResta herramienta de geoprocesamiento seguirá ejecutándose en ArcGIS for Desktop mientras la tarea del caché se ejecuta en ArcGIS for Server o ArcGIS Online. Con esta opción, puede solicitar informes de progreso detallados en cualquier momento y ver los mensajes de geoprocesamiento cuando aparecen. Ésta es la opción predeterminada. Se recomienda que cree primer utilice esta opción en las secuencias de comandos de Python.
  • NO_ESPERARla herramienta de geoprocesamiento enviará el trabajo al servidor, lo que le permite realizar otras tareas de geoprocesamiento en ArcGIS for Desktop o incluso cerrar ArcGIS for Desktop. Esta opción se utiliza cuando elige crear una caché automáticamente cuando publica el servicio, y también puede configurar esta opción en cualquier otra caché que usted vaya a crear. Para seguir el estado de una tarea del caché, abra ArcGIS for Desktop, haga clic con el botón derecho del ratón en el servicio de la ventana Catálogo y haga clic en Ver estado del caché. También puede utilizar la dirección URL proporcionada en el mensaje de resultado de la herramienta.Esta opción no está disponible si la geodatabase de archivo Status.gdb no está presente en el directorio de caché del servicio.
Boolean

Ejemplo de código

Ejemplo1

Crear o actualizar todas las teselas en la caché con la opción RECREAR_TODAS_LAS_TESELAS

# 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 = r'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 \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 Map server Cache Tiles "

Ejemplo2

Actualizar las teselas vacías para algunas de las escalas con la opción RECREAR_TESELAS_VACÍAS

# 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 + "\n   at " + cacheDir + " 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 "Rereated Map server Cache Tiles for scale = " + str(scaleValues[-1])

Ejemplo3

Actualizar las teselas mediante un Área de interés

# ManageMapServerCacheTiles example for ArcGIS Server 10.1(stand-alone script)

# 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
# Author: ESRI

# 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 = "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 = r'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 + "\n using specified feature class "
    areaOfInterest + " 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 \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"

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Temas relacionados

Información sobre licencias

ArcGIS for Desktop Basic: Sí
ArcGIS for Desktop Standard: Sí
ArcGIS for Desktop Advanced: Sí
5/16/2014