マップ サービス キャッシュの作成(Create Map Server Cache) (サーバ)
サマリ
マップ サービス キャッシュ用のタイル スキーマおよびフォルダを作成します。このツールの実行後は、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] を実行して、タイルをキャッシュに追加できます。
使用法
-
このツールは、ArcGIS Server のマップ サービスに対してのみ機能します。
-
一度にキャッシュできるデータ フレームは 1 つだけです。複数のデータ フレームからのマップが必要な場合は、それぞれのデータ フレームに対して別のマップ サービスとキャッシュを作成しなければなりません。
-
一度タイル スキーマを作成すると、それを変更することはできません。ただし、[マップ サービス キャッシュの縮尺を管理(Manage Map Server Cache Scales)] ツールを使って、キャッシュの縮尺を追加または削除することができます。
-
パフォーマンスを最適化するには、融合キャッシュを使用してください。Web アプリケーションで利用するタイルには、常に融合キャッシュを使用してください。
-
ラスタ データは、JPEG または MIXED イメージ形式にするのが最適です。ベクタ マップで JPEG または MIXED を使用する場合には、高い圧縮品質値(90 など)を使って、ラインやテキストの不鮮明さを軽減します。ベクタ データは PNG 形式でも提供することができますが、Web アプリケーションで使用される PNG 24 はキャッシュには避けるべきです。
-
JPEG ファイル形式は、マルチ レイヤ キャッシュではサポートされていません。
-
キャッシュのイメージ形式は、キャッシュが生成された後で変更することはできません。別の形式に切り替える前に、キャッシュを最初に削除しなければなりません。
-
[アンチエイリアス] オプションがオンの場合、ラインとテキストのエッジはなめらかになります。ただし、ラスタ イメージに対しては画質向上の効果はほとんどありません。
構文
パラメータ | 説明 | データ タイプ |
server_name |
キャッシュを作成するサービスをホストする ArcGIS Server コンピュータ。 | String |
object_name |
キャッシュを作成するマップ サービス。 | String |
data_frame |
キャッシュを作成するマップのデータ フレーム。 | String |
out_folder |
キャッシュの親ディレクトリ。この ArcGIS Server キャッシュ ディレクトリは、登録済みのものでなければなりません。 | String |
tiling_scheme_type | 新しい(NEW)タイル スキーマまたは定義済み(PREDEFINED)のタイル スキーマの使用を選択します。このツールで新しいタイル スキーマを定義するか、または定義済みタイル スキーマ(*.xml)を参照することができます。定義済みスキーマは、[マップ サービス キャッシュ タイル スキ-マの作成(Generate Map Server Cache Tiling Scheme)] ツールを実行することによって作成することができます。
| String |
scales_type |
タイルの縮尺を定義する方法を指定します。
| String |
num_of_scales |
キャッシュ内に作成される縮尺レベルの数。縮尺のカスタム リストを作成した場合、このオプションは無効です。 | Long |
dpi |
対象となる出力デバイスの 1 インチあたりのドット数。選択した DPI が出力デバイスの解像度と一致していない場合、その縮尺のマップ タイルは正しく表示されません。デフォルト値は 96 です。 | Long |
tile_width |
キャッシュ タイルの幅(ピクセル単位)。デフォルト値は 256 です。パフォーマンスと管理容易性の最適なバランスを得るには、256 または 512 の標準幅から外れないようにしてください。 | Long |
tile_height |
キャッシュ タイルの高さ(ピクセル単位)。デフォルト値は 256 です。パフォーマンスと管理容易性の最適なバランスを得るには、256 または 512 の標準幅から外れないようにしてください。 | Long |
map_or_layers (オプション) |
融合 キャッシュ(FUSED)またはマルチレイヤ キャッシュ(MULTI_LAYER)を生成対象として選択します。
| String |
tiling_schema (オプション) |
定義済みタイル スキーマ ファイル(ファイル名は通常 conf.xml)へのパス。 | File |
tile_origin (オプション) |
ソース マップ ドキュメントの空間参照座標での、タイル スキーマの原点(左上隅)。ソース マップ ドキュメントの範囲は、この原点の内側であることが条件となります(ただし、この領域と一致している必要はありません)。 | Point |
levels [levels,...] (オプション) |
利用可能なキャッシュの縮尺レベル。これらは分数としては表されません。代わりに、500 を使用して 1:500 などの目盛を表します。 | String |
Layer [Layer,...] (オプション) |
マルチレイヤ キャッシュ タイプを選択した場合に、キャッシュ内に含めるレイヤ。 | String |
Antialiasing (オプション) | タイルのレンダリング時にアンチエイリアスを使用するかどうかを指定します。アンチエイリアスを選択した場合、ライン、境界線、テキストのエッジがなめらかになります。このオプションを使用すると、パフォーマンスが低下します。MXD ベースのマップ サービス(MSD ファイル内にアンチエイリアスが定義されている MSD ベースのマップ サービスとは対照的)を利用している場合、パフォーマンスの低下が著しくなります。ラスタ イメージに対しては、アンチエイリアスを使用してもメリットがありません。 マップ サービスのソースが MSD ファイルである場合、その MSD 内にアンチエイリアスを定義してある限り、このツールのオプションを選択したかどうかに関係なく、アンチエイリアスがキャッシュに適用されます。
| Boolean |
cache_format (オプション) |
キャッシュ内のタイル用に PNG8、PNG24、PNG32、JPEG または MIXED のうちのいずれかのファイル形式を選択します。PNG8 がデフォルトです。
| String |
tile_compression_quality (オプション) |
JPEG 圧縮品質を得るには、値を 1 ~ 100 の範囲で入力します。JPEG タイル フォーマットのデフォルト値は 75 で、他のフォーマットのデフォルト値は 0 です。 圧縮は JPEG 形式だけでサポートされます。高い値を選択すると、作成されるファイルのサイズは大きくなり、画像の品質は向上します。低い値を選択すると、作成されるファイルのサイズは小さくなり、画像の品質は低下します。 | Long |
storage_format (オプション) |
各タイルを「エクスプロード」形式を使用して別々のファイルに格納する代わりに、「コンパクト」格納形式を使用して、タイルを大きな *.bundle ファイルにグループ化するかどうかを選択します。コンパクト格納形式は、格納と移動の点で、より効率的です。 | String |
use_local_cache_dir | コンパクト キャッシュを作成する際に、バンドル ファイルを共有キャッシュ ディレクトリに直接書き込む代わりに、サーバのローカル ディレクトリに書き込むかどうかを選択します。このオプションを選択した場合、バンドルが完成次第、共有キャッシュ ディレクトリにコピーされます。このオプションにより、複数のコンピュータがキャッシュ作業を実行している際にパフォーマンスが向上します。
| Boolean |
コードのサンプル
この例では、「標準」タイプの縮尺を使って、マップ キャッシュを作成します。
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # 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 server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 " + service + " 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 example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # 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 server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 " + service + " 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 example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # 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 server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 " + service + " 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()