Kachelschema für Kartenserver-Cache erstellen (Server)

Zusammenfassung

Generiert eine benutzerdefinierte Kachelschemadatei im XML-Format, in der die Maßstabsebenen, Kacheldimensionen und andere Eigenschaften für einen Web-Kachel-Layer definiert sind.

Mit einem Kachelschema wird beschrieben, wie Clients die Kacheln in einem Cache referenzieren sollen. Außerdem stellt es eine Zuordnung zwischen dem Raumbezug des Quellkartendokuments und dem Kachelungs-Raster dar. Das Kachelungs-Raster verwendet ein Schema für Detaillierungsebenen (Maßstäbe), Zeilen und Spaltenreferenzierungen. Mit dem Schema werden außerdem die Maßstabsebenen (Detaillierungsebenen) für die Kacheln des Cache sowie die Größe der Kacheln in Pixel und die Bildschirmauflösung, in der die Kacheln am häufigsten angezeigt werden, festgelegt. Ein Kachelschema ist für die Generierung eines Karten-Cache erforderlich.

Verwendung

  • In der Standardeinstellung beginnt die Kachelung in der oberen linken Ecke des Koordinatensystems, das vom Quellkartendokument des Service verwendet wird.

Syntax

GenerateMapServerCacheTilingScheme(in_map, tile_origin, output_tiling_scheme, num_of_scales, scales, dots_per_inch, tile_size)
ParameterErklärungDatentyp
in_map

Die aktuelle Karte oder ein vorhandenes .mxd-Dokument zur Verwendung für das Kachelschema.

Map
tile_origin

Die obere linke Ecke des Kachelschemas in Koordinaten des Raumbezugs des Quelldatenrahmens.

Point
output_tiling_scheme

Pfad und Dateiname der zu erstellenden Datei für das Kachelschema.

File
num_of_scales

Anzahl der Maßstabsebenen im Kachelschema.

Long
scales
[scales,...]

Maßstabsebenen, die in das Kachelschema einbezogen werden sollen. Diese werden nicht als Brüche dargestellt. Verwenden Sie stattdessen 500, um einen Maßstab von 1:500 darzustellen, bzw. entsprechende andere Werte.

Value Table
dots_per_inch

Die Auflösung in DPI (Dots per Inch, Punkte pro Zoll) des betreffenden Ausgabegeräts. Bei einem DPI-Wert, der nicht mit der Auflösung des Ausgabegeräts übereinstimmt, wird der Maßstab der Kartenkachel falsch angezeigt. Der Standardwert ist 96.

Long
tile_size

Die Breite und Höhe der Cache-Kacheln in Pixel. Der Standardwert ist 256 mal 256. Um ein optimales Gleichgewicht zwischen Performance und Verwaltbarkeit zu erzielen, sollten Sie es vermeiden, von den Standardwerten 256 x 256 oder 512 x 512 abzuweichen.

  • 128 x 128128 x 128 Pixel
  • 256 x 256256 x 256 Pixel
  • 512 x 512512 x 512 Pixel
  • 1024 x 10241024 x 1024 Pixel
String

Codebeispiel

GenerateMapServerCacheTilingScheme – Beispiel

Erstellt ein Karten-Cache-Kachelschema mit vier Maßstäben.

# Name: GeneateMapServerCacheTilingScheme.py
# Description: The following stand-alone script demonstrates how to create map
#               server cache schema using a given map document at a given
#               "pathForOutputXml"
# 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
mapDocument = "C:/data/101/Portland/mxd/_M_Portland_classic_FGDB_Local.mxd"
dataFrame = ""
outputTilingScheme = "C:/data/port.xml"
tileOrigin = ""
numOfScales = "4"
scales = "500000,250000,125000,64000"
tileSize = "256 x 256"
dotsPerInch = "96"

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.GenerateMapServerCacheTilingScheme_server(mapDocument, dataFrame,
                                                             tileOrigin, outputTilingScheme,
                                                             numOfScales, scales,
                                                             dotsPerInch, tileSize)
    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 MapServer cache tiling schema successfully using" + \
        mapDocument + " at "+ outputTilingScheme + " in " + str(elapsedtime) + \
        " sec \n on " + arg2)

except Exception as 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(str(e))

print("Created Map server Cache Tiling schema ")

report.close()

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen