例: 選択された土地区画を一覧表示する

このための 1 つの方法は、JavaScript 関数を作成してから、[スクリプトを起動]コマンドを使用して、またはタスク ペインの onClick イベントの結果として、この関数をビューアから呼び出します。たとえば、Working With Feature Data サンプルのタスク ペインには、onClick によって実行された JavaScript 関数が表示されます。

function listSelection()
{
  xmlSel = parent.parent.mapFrame.GetSelectionXML();
  params = new Array("SESSION", 
    parent.parent.mapFrame.GetSessionId(), 
    "MAPNAME", parent.parent.mapFrame.GetMapName(),
    "SELECTION", xmlSel);
  pageUrl = 
    "/mapguide/samplesphp/working_with_feature_data/
    listselection.php";
  parent.parent.formFrame.Submit(pageUrl, params, 
    "taskPaneFrame");
}

これによって要求が listselection.php に送信されます。その内容は次のとおりです。

$map = new MgMap();
$map->Open($resourceService, $mapName);
 
$selection = new MgSelection($map);
$selection->Open($resourceService, $mapName);
$layers = $selection->GetLayers();
 
if ($layers)
{ 
  $queryOptions = new MgFeatureQueryOptions();
  for ($i = 0; $i < $layers->GetCount(); $i++)
  {
    // Only check selected features in the Parcels layer.
 
    $layer = $layers->GetItem($i);
 
    if ($layer && $layer->GetName() == 'Parcels')
    {
 
      // Create a filter containing the IDs of the selected 
      // features on this layer
 
      $layerClassName = $layer->GetFeatureClassName();
      $selectionString = $selection->GenerateFilter($layer, 
        $layerClassName);
 
      // Get the feature resource for the selected layer
 
      $layerFeatureId = $layer->GetFeatureSourceId();
      $layerFeatureResource = new 
        MgResourceIdentifier($layerFeatureId);
 
      // Apply the filter to the feature resource for the 
      // selected layer. This returns
      // an MgFeatureReader of all the selected features.
 
      $queryOptions->SetFilter($selectionString);
      $featureReader = 
        $featureService->SelectFeatures($layerFeatureResource, 
        $layerClassName, $queryOptions);
 
      // Process each item in the MgFeatureReader, 
      // displaying the owner name
 
      while ($featureReader->ReadNext())
      {
        $val = $featureReader->GetString('NAME') . 
          '<br />&nbsp;&nbsp;' . 
          $featureReader->GetString('RPROPAD');
        echo $val . '<br />';
      }
    }
  }
}
else
echo 'No selected layers';
echo '</p>';