スクリプト フレームから Viewer API を呼び出す

この方法は、ページでの操作に応じて Viewer API を呼び出す必要があるものの、呼び出し元のページを再ロードしない場合に使用します。たとえば、場所のリストを生成するページがあり、そのリストがタスク ペインで利用可能な状態で、ユーザがそれらの場所に直接ジャンプできるようにすることができます。

この場合、target="scriptFrame"<a>タグの一部として使用すると、別のページを非表示のスクリプト フレームにロードすることができます。この記述は、別のページをスクリプト フレームにロードし、ページのロード時に必要なパラメータを渡すように要求します。

Hello Viewer サンプル アプリケーションには、スクリプト フレーム内で実行されるように設計された gotopoint.php というファイルが含まれています。<body>要素は空白で、ページはなにも出力しません。代わりに、ページのロード時に実行する JavaScript 関数を生成します。この関数は、Viewer API の ZoomToView() 関数を呼び出します。gotopoint.php の重要な部分は、次の箇所です。

<script language="javascript">
 
function OnPageLoad()
{
   parent.ZoomToView(<?= $_GET['X'] ?>, 
   <?= $_GET['Y'] ?>, 
   <?= $_GET['Scale'] ?>, true);
}
 
</script>
 
<body onLoad="OnPageLoad()">
 
</body>

gotopoint.phpをタスク フレームから実行するには、次のようなコードを挿入します。

$xLocation = -87.7116768; // Or calculate values
$yLocation = 43.7766789973;
$mapScale = 2000;
echo "<p><a href=\"gotopoint.php?" .
  "X=$xLocation&Y=$yLocation&Scale=$mapScale\"" . 
  "target=\"scriptFrame\">Click to position map</a></p>";
注:

この方法は、タスク ペインを再ロードせずに Web API を呼び出す場合にも使用できます。例として「マップと画層を修正する」サンプルを参照してください。