グローブ サービス キャッシュのタイルを管理(Manage Globe Server Cache Tiles) (サーバ)
サマリ
タイルを既存のグローブ サービス キャッシュ内に作成し、更新します。このツールは、新しいタイルの作成、欠落したタイルの補充、古くなったタイルの上書き、または新しいタイルの追加に使用します。そのようなすべてのアクションは、表示範囲枠あるいはポリゴン フィーチャクラスによって定義できます。新しいタイルを構築する場合には、空のタイルのみを作成するか、またはすべてのタイルを再構築するかを選択することができます。
使用法
-
このツールは、既存のグローブ サービス キャッシュの更新に使用する必要があります。キャッシュを更新するには、グローブ サービスをホストする ArcGIS Server を指定します。このツールは、対象のサーバ上で使用可能なすべてのグローブ サービスの一覧を自動的に表示します。
-
範囲を指定しない [更新] の実行は、サービスの全範囲を更新します。
-
[更新] の実行は、グローブ サービス キャッシュの一部だけを更新する必要がある場合に便利です。[level_from] と [level_to] を指定する場合、必ずタイルを生成したいすべての縮尺レベルを指定するようにしてください。[level_from] は、データ キャッシュの使用開始時に設定する最小の詳細レベルを定義します。[level_to] は、データ キャッシュのための最も高い解像度を定義します。
構文
パラメータ | 説明 | データ タイプ |
server_name |
タイルを管理するグローブ サービスをホストする、ArcGIS Server コンピュータ。 | String |
object_name |
タイルが変更されるグローブ サービス。 | String |
update_extent (オプション) |
更新モードにしたがって、タイルが作成または削除される、矩形の表示範囲。範囲の値を入力するか、または既存のデータ ソースから範囲を選択することができます。 | Extent |
in_layers [in_layers,...] |
キャッシュ内に含めるレイヤを選択します。 レイヤのキャッシングを開始する詳細のレベルである、[level_from] と、レイヤのキャッシングを終了する詳細のレベルである、[level_to] を、各レイヤに提供する必要があります。[level_from] と [level_to] に対して、それぞれ最小/最大の詳細レベルの縮尺を使用した場合、レイヤ用に全キャッシュが構築されます。 | Value Table |
thread_count (オプション) |
このツールの実行時に使用するグローブサービスのインスタンス数。デフォルトでは、インスタンスの最大数が使用されます(ArcGIS Server サービスの場合、デフォルトは 2 です)。サーバ リソースに余裕がある場合は、最大インスタンス数を引き上げることができます。それには、[サービス プロパティ] で最大インスタンス数を引き上げてから、ツールの実行時にこのパラメータ値を増分してださい。 | Long |
update_mode |
キャッシュを更新するときのモードを選択します。次の 2 つのモードがあります。
| String |
update_feature_class (オプション) |
ポリゴン フィーチャクラスを使用して、フィーチャクラス内のフィーチャの範囲に基づいて、タイルを管理(作成/更新)することができます。たとえば 1 つの国をキャッシュしている場合は、主要都市部のフィーチャクラスを指定することができます。そうすることで、それらの都市部をカバーするタイルだけをサーバに事前に作成するよう要求できます。残りのエリアは、クライアントによってリクエストされたときにオンデマンドでキャッシュすることができます。これにより、郊外地域のタイルの作成に費やす時間とディスク領域を節約することができます。 | Feature Class |
ignore_status (オプション) | このパラメータを使用すると、フィーチャクラスの境界線に基づいてタイルを作成している場合に、キャッシングのステータスを追跡することができます([入力フィーチャクラス] パラメータを参照)。
| Boolean |
コードのサンプル
この例では、グローブ サービス用の完全キャッシュを作成します。
#ManageGlobeServerCacheTiles example (stand-alone script) # Name: ManageGlobeServerCacheTiles.py # Description: The following stand-alone script demonstrates how to update the # globe map server 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 values # 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 server = "MyServer" globeServerObject = "tstGlobeService" inputLayers = "" extents = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\GlobeCache" threadCount = "2" updateMode = "Recreate All Tiles" pathToFeatureClass = "" ignoreStatus = "IGNORE_COMPLETION_STATUS_FIELD" 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.ManageGlobeServerCacheTiles_server (server, globeServerObject, extents, updateMode, inputLayers, threadCount, pathToFeatureClass, ignoreStatus) 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 the GlobeServer cache successfully for mapservice " + globeServerObject + "\n at " + cacheDir + globeServerObject + " 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 the globe server cache successfully"