フィーチャ ソースのデータを変更するには、MgFeatureCommandCollection オブジェクトを作成します。これには、FDO データ ソース内のフィーチャを挿入、削除、または更新するコマンドを含めることができます。コマンドは順番に実行されます。トランザクション処理をサポートする FDO プロバイダの場合は、コマンドを 1 つのトランザクションとして扱うことができます。
フィーチャ コマンドは次のいずれかになります。
コマンドを実行するには、MgFeatureService::UpdateFeatures() を呼び出します。フィーチャ コマンドのフィーチャ クラス名とプロパティ名は、フィーチャ ソースのクラス名とプロパティ名に一致している必要があります。
たとえば、識別プロパティ ID を持つフィーチャ クラス内のすべてのフィーチャを削除するには、次の操作を実行します。
$commands = new MgFeatureCommandCollection(); $deleteCommand = new MgDeleteFeatures($className, "ID >= 0"); $commands->Add($deleteCommand); $featureService->UpdateFeatures($featureSource, $commands, false);
フィーチャを挿入するには、新しいフィーチャのプロパティが格納された MgPropertyCollection オブジェクトを作成します。MgInsertFeatures オブジェクトを作成し、これを MgFeatureCommandCollection オブジェクトに追加します。
1 つのジオメトリ プロパティを持つ新しいフィーチャを追加するには、次のように実行します。
$commands = new MgFeatureCommandCollection(); $properties = new MgPropertyCollection(); $agfByteStream = $agfReaderWriter->Write($geometry); $geometryProperty = new MgGeometryProperty($propertyName, $agfByteStream); $properties->Add($geometryProperty); $insertCommand = new MgInsertFeatures($className, $properties); $commands->Add($insertCommand); $featureService->UpdateFeatures($featureSource, $commands, false);
既存のフィーチャを更新するには、プロパティの新しい値が格納された MgPropertyCollection オブジェクトと、1 つまたは複数の正しいフィーチャを選択するフィルタ式を作成します。フィルタ式の詳細については「フィーチャ データのクエリーを実行する」を参照してください。