マッピング サービスは ePlot DWF を作成します。
ePlot DWF は、主にオフラインでの表示や印刷に使用するために作られています。ePlot DWF には MgPlotSpecification が含まれており、これを使用してページ サイズや余白を定義できます。また、オプションの MgLayout も含まれており、これを使用して、プロットに含める追加コンポーネント(凡例やカスタム ロゴなど)を定義することもできます。レイアウトは、リポジトリの印刷レイアウトに従います。PrintLayout スキーマに関する説明は、『Infrastructure Map Server Web API リファレンス』を参照してください。
複数のシートを使用して ePlot DWF を作成するには、MgMapPlotCollection を使用します。コレクション内の各アイテムは、1 つのシートを表す MgMapPlot です。
複数の DWF を印刷する場合、マップ名がシート名になります。DWF ファイル内の各シートは固有の名前を持たなければならないため、DWF ファイル内のシートごとに個別の MgMap オブジェクトを作成する必要があります。
次の例では、2 つのシートがあり、複数の印刷を行う DWF を作成します。2 番目のシートでは最初のシートと同じマップ領域を表示しますが、印刷レイアウトによって表題と凡例情報が追加されます。
$dwfVersion = new MgDwfVersion("6.01", "1.2"); $plotSpec = new MgPlotSpecification(8.5, 11, MgPageUnitsType::Inches); $plotSpec->SetMargins(0.5, 0.5, 0.5, 0.5); $plotCollection = new MgMapPlotCollection(); $plot1 = new MgMapPlot($map, $plotSpec, $layout); $plotCollection->Add($plot1); // Create a second map for the second sheet in the DWF. This // second map uses the print layout // to display a page title and legend. $map2 = new MgMap(); $map2->Create($resourceService, $map->GetMapDefinition(), 'Sheet 2'); $layoutRes = new MgResourceIdentifier( "Library://Samples/Sheboygan/Layouts/SheboyganMap.PrintLayout"); $layout = new MgLayout($layoutRes, "City of Sheboygan", MgPageUnitsType::Inches); $plot2 = new MgMapPlot($map2, $map->GetViewCenter()->GetCoordinate(), $map->GetViewScale(), $plotSpec, $layout); $plotCollection->Add($plot2); $byteReader = $mappingService-> GenerateMultiPlot($plotCollection, $dwfVersion); // Now output the resulting DWF. $outputBuffer = ''; $buffer = ''; while ($byteReader->Read($buffer, 50000) != 0) { $outputBuffer .= $buffer; } header('Content-Type: ' . $byteReader->GetMimeType()); header('Content-Length: ' . strlen($outputBuffer)); echo $outputBuffer;