概要
マップまたはイメージ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。 このツールの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを使用して、タイルをキャッシュに追加できます。
使用法
一度タイル スキーマを作成すると、それを変更することはできません。 ただし、[マップ サービス キャッシュの縮尺を管理 (Manage Map Server Cache Scales)] ツールを使用して、キャッシュの縮尺を追加または削除することができます。
ラスター データは、JPEG または MIXED イメージ形式を使用して公開するのが最適です。 ベクター マップで JPEG または MIXED 形式を使用する場合は、高い圧縮品質値 (90 など) を使用して、ラインやテキストの不鮮明さを軽減します。 ベクター データは PNG 形式を使用して公開することもできます。
キャッシュのイメージ形式は、キャッシュが生成された後で変更することはできません。 別の形式に切り替える前に、キャッシュを最初に削除しなければなりません。
構文
arcpy.server.CreateMapServerCache(input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format})
パラメーター | 説明 | データ タイプ |
input_service | キャッシュを作成するマップまたはイメージ サービス。 これは、サーバーとサービスの両方の情報を含む文字列です。 この文字列の構築方法を確認するには、ArcCatalog を開き、[カタログ] ツリーでサービスを選択して、[場所] ツールバーに表示されているテキストを記録します。 バックスラッシュをスラッシュ (たとえば、GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer) に変更します。 | Image Service; Map Server |
service_cache_directory | キャッシュの親ディレクトリ。 この ArcGIS Server キャッシュ ディレクトリは、登録済みのものでなければなりません。 | String |
tiling_scheme_type | タイル スキーマの定義方法を指定します。 このツールで新しいタイル スキーマを定義するか、または定義済みのタイル スキーマ ファイル (*.xml) を参照することができます。 定義済みスキーマは、[マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme)] ツールを実行することによって生成できます。
| String |
scales_type | タイルの縮尺方法を指定します。
| String |
num_of_scales | キャッシュ内に作成する縮尺レベルの数。 縮尺のカスタム リストを作成した場合、このオプションは無効です。 | Long |
dots_per_inch | 対象となる出力デバイスの 1 インチあたりのドット数 (DPI)。 選択した DPI が出力デバイスの解像度と一致していない場合、その縮尺のマップ タイルは正しく表示されません。 デフォルト値は 96 です。 | Long |
tile_size | ピクセル単位でキャッシュ タイルの幅と高さを指定します。 パフォーマンスと管理容易性の最適なバランスを得るには、256 x 256 または 512 x 512 の標準幅から外れないようにしてください。
| String |
predefined_tiling_scheme (オプション) | 定義済みのタイル スキーマ ファイル (ファイル名は通常 conf.xml) へのパス。 | File |
tile_origin (オプション) | ソース マップ ドキュメントの空間参照座標での、タイル スキーマの原点 (左上隅)。 ソース マップ ドキュメントの範囲は、この原点の内側であることが条件となります (ただし、この領域と一致している必要はありません)。 | Point |
scales [scales,...] (オプション) | 利用可能なキャッシュの縮尺レベル。 これらは分数としては表されません。 代わりに、500 を使用して 1:500 などの縮尺を表します。 | Value Table |
cache_tile_format (オプション) | キャッシュ タイル フォーマットを指定します。
| String |
tile_compression_quality (オプション) | JPEG の圧縮品質 (1 ~ 100)。 JPEG タイル フォーマットのデフォルト値は 75 で、他のフォーマットのデフォルト値は 0 です。 圧縮は JPEG 形式だけでサポートされます。 高い値を選択すると、作成されるファイルのサイズは大きくなり、画像の品質は向上します。 低い値を選択すると、作成されるファイルのサイズは小さくなり、画像の品質は低下します。 | Long |
storage_format (オプション) | タイルの格納形式を指定します。
| String |
派生した出力
名前 | 説明 | データ タイプ |
out_service_url | 出力マップ サービス URL。 | String |
コードのサンプル
CreateMapServerCache (マップ サービス キャッシュの作成) の例 1 (スタンドアロン スクリプト)
次の例では、STANDARD 縮尺タイプを使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。 このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを実行して、タイルをキャッシュに追加できます。
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# cache tiling scheme using standard scales.
# Note: Use ManageMapServerCacheTile tool to generate 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 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""
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.CreateMapServerCache_server(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 schema with 4 scales & default properties 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)
print "Executed creation of Map server Cache schema "
report.close()
CreateMapServerCache (マップ サービス キャッシュの作成) の例 2 (スタンドアロン スクリプト)
次の例では、CUSTOM 縮尺を使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。 このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを実行して、タイルをキャッシュに追加できます。
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# cache tiling scheme using Custom scales & jpg image format.
# Note: Use ManageMapServerCacheTile tool to generate 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 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, string, datetime, traceback
# 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
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.CreateMapServerCache_server(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 schema with custom scales 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)
print "Executed creation of map server Cache schema using custom scales"
report.close()
CreateMapServerCache (マップ サービス キャッシュの作成) の例 3 (スタンドアロン スクリプト)
次の例では、PREDEFINED タイル スキーマを使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。 このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを実行して、タイルをキャッシュに追加できます。
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# cache tiling scheme using existing predefined schema.
# Note: Use ManageMapServerCacheTile tool to generate 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 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
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"
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.CreateMapServerCache_server (inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 schema using predefined tiling schema 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)
print "Executed creation of map server Cache schema using tiling scheme"
report.close()
環境
このツールは、ジオプロセシング環境を使用しません。
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい