ArcGIS 描画エンジン間の描画の違い
ArcGIS Server のベースマップ レイヤおよび最適化されたマップ サービスは高性能な描画エンジンを使用して、パフォーマンスの改善と描画品質の向上を実現します。この描画エンジンは、サポートされているすべてのシンボル タイプに対して優れたパフォーマンスを発揮します。
この描画エンジンは ArcMap または標準マップ サービスで使用される描画エンジンとは異なるため、最適化されたマップ サービスで描画されるマップの表示にはいくつかの重要な違いがあります。[準備] ウィンドウでは、これらのさまざまな違いを通知する警告を表示します。
ただし、見た目の違いは主観的であるため、表示されるマップの見た目が適切かどうかを常に検証する必要があります。ベースマップ レイヤを作成している場合、ArcMap のベースマップ レイヤを使用して違いを視覚化します。最適化されたマップ サービスを公開するには、[マップ サービス公開] ツールバーの [準備] ウィンドウを使用します。次のセクションでこれらの描画の違いとその理由について説明します。
テキストおよび絵文字マーカーのアンチエイリアス
ArcMap および標準マップ サービスでは、テキストおよび絵文字マーカーのアンチエイリアスはコンピュータの表示設定で構成されるフォント スムージング設定によって制御されます。この設定はユーザごとに構成され、マップ サービスの一部として設定されるものではありません。このため、マップが標準マップ サービスとしてサーバに公開されるときには、フォント スムージングの振舞いが異なる可能性があります。
最適化されたマップ サービスではこれらの設定がサービスごとに構成可能で、マップ サービス定義の一部として保存されます。これらのテキスト アンチエイリアス設定には、[マップ サービス公開] ツールバーの [オプション] ボタンからアクセスします。
ベースマップ レイヤで描画されるテキストは常に [全て(推奨)] オプションを使用して描画されます。ベースマップ レイヤのラベルは ArcMap の標準的な表示を使用して描画され、上記に述べたコンピュータの設定に従います。
ベースマップ レイヤおよび最適化されたマップ サービス描画エンジンでは異なる方法を使用して、テキストおよび絵文字のアンチエイリアスを有効にします。また、このアンチエイリアスの実行に使用されるアルゴリズムも異なり、テキストおよび絵文字マーカーのレンダリングの振舞いにも標準マップ サービスと比較していくつかの異なる点があります。
座標の丸め方の違い
ArcMap および標準マップ サービスでは、画面上に表示されるエレメントを整数座標で指定します。実際のフィーチャの座標(ラインやマーカーなど)を整数座標で正確に表せない場合、切り上げまたは切り捨てが行われます。これにより、非常に細いラインや外縁ラインのような非常に細いエレメントの場合、不正確な表示になる可能性があります。指定されたズーム レベルまたは表示範囲において、1 ピクセル未満のサイズのラインは 1 ピクセルに切り上げられます。
ベースマップ レイヤおよび最適化されたマップ サービスでは、描画エンジンはサブピクセル単位の座標を使用してマップ上にフィーチャを配置、描画することができます。これにより、フィーチャの配置およびシンボル表示が非常に正確になります。
ただし、マップのシンボルがもともと ArcMap で設計されていた場合、ベースマップ レイヤまたは最適化されたマップ サービスでの表示が異なる場合があります。これは、特にライン シンボルの場合に顕著です。
これらの問題および指定されたターゲット解像度でのライン シンボルの設計方法の詳細については、トピック「最適化されたマップ サービスでのライン エイリアシング」の「特定の解像度に対応したライン設計」セクションをご参照ください。ベースマップ レイヤではほとんどの場合、この問題は起こりません。それはベースマップ レイヤが自動的にこの問題を修正するためです。
ベースマップ レイヤおよび最適化されたマップ サービスのシンプル シンボル
ArcMap で提供されるシンプル シンボル(シンプル ライン シンボル、シンプル塗りつぶしシンボル、シンプル マーカー シンボル)は、一貫性のない表示がされることがあります。このようにシンプル シンボルに一貫性がないため、ベースマップ レイヤまたは最適化されたマップ サービスでは異なる形で描画される場合があります。[準備] ウィンドウの解析で、これらの違いが通知される場合があります。
たとえば、破線または鎖線パターンを使用したシンプル ライン シンボルはマップの基準縮尺を考慮しないため、指定された dpi に応じて異なる間隔で描画されます。ベースマップ レイヤまたは最適化されたマップ サービスでは、これらのシンボルはマップの基準縮尺を考慮するため、指定された dpi によって変化することはありません。
シンプル塗りつぶしシンボルでは、ArcMap ユーザ インタフェースの [スタイル] プロパティが実際には使用できません。しかし、多くの開発者サンプルおよび他のサードパーティによるコード スニペットでは、これらのシンボルがマップ上に作成される場合があります。esriSFSSolid 以外のスタイルはベースマップ レイヤまたは最適化されたマップ サービスではサポートされていないため、解析時にエラーになります。
シンプル マーカー シンボルでは、シンプル マーカーの振舞いが表示されたサイズに応じて変化するため、サイズと形状にばらつきが発生します。
ベースマップ レイヤおよび最適化されたマップ サービスでは、マーカー シンボルを指定されたサイズで常に表示します。標準マップ サービスまたは ArcMap では、シンプル マーカー シンボルのサイズが一定の閾値を下回ると、それ以上小さくは描画されません。このためシンボルのサイズが閾値に達した場合、標準マップ サービスおよび ArcMap ではこれらのシンボルを正確なサイズでは表示できませんが、ベースマップ レイヤまたは最適化されたマップ サービスは継続してこれらのシンボルを正確なサイズで表示するため、表示の明らかな不一致が発生します。
ベースマップ レイヤおよび最適化されたマップ サービスのライン装飾
ArcMap のライン装飾を含むライン シンボル(矢印付きラインなど)は、装飾されるフィーチャのラインの長さより装飾自体が長い場合、装飾を描画しません。ベースマップ レイヤおよび最適化されたマップ サービスで使用される描画エンジンは、ラインのサイズに関係なく常にライン装飾を描画します。一部の縮尺では、ArcMap より煩雑な表示となる可能性があります。ただし、ライン装飾は一貫性のある、決まった方法で描画されます。
ベースマップ レイヤおよび最適化されたマップ サービスの色
ベースマップ レイヤおよび最適化されたマップ サービスで使用される描画エンジンは、色管理エンジンを使用します。このため、いくつかの色に関しては ArcMap の標準的な表示の見た目と正確に一致しない場合があります。
ArcMap アプリケーションおよび標準マップ サービスは色管理を使用しません。特に以下を使用する場合、色の違いに注意する必要があります。
- RGB 以外の色空間で定義された色(HSV、CMYK、またはグレースケールで定義された色など)
- HSV、CIELab、または LABLch アルゴリズムを使用したアルゴリズム カラー ランプ
ArcMap 上でベースマップ レイヤを表示するか、あるいは [マップ サービス公開] ツールバーから [プレビュー] ウィンドウを使用してベースマップ レイヤを表示することで、新しいグラフィックス エンジンを使用したマップの見た目を評価して、色およびシンボルが問題ないかどうかを判断します。
最適化されたマップ サービスでの色の違いを最小化する方法の 1 つに、ArcMap のモニタ設定を変更する方法があります。この方法は、最適化されたマップ サービスで使用するマップを作成するときに役立ちます。
モニタ設定にアクセスするには、[シンボル プロパティ] ダイアログ ボックスで色見本のドロップダウン メニューをクリックし [その他の色] を選択します。
[色選択] ダイアログ ボックスの右上隅の矢印ボタンをクリックし、[モニタのセットアップ] を選択します。
[モニタのセットアップ] ダイアログ ボックスの [ガンマ] 設定を「2.2」に変更し、[OK] をクリックしてダイアログ ボックスを閉じます。
これにより、ArcMap がベースマップ レイヤおよび最適化されたマップ サービスの描画エンジンで使用されている色プロファイルにより近いガンマ値を使用するように変更され、より一致した色変換が実現します。
この設定は上記の修正が実行されたユーザおよびコンピュータで描画したマップの見た目のみに影響します。この設定は標準マップ サービスとして提供されるマップにも適用されます。
ベースマップ レイヤおよび最適化されたマップ サービスにおけるフォント処理の違い
ArcMap または標準マップ サービスに比べ、ベースマップ レイヤまたは最適化されたマップ サービスのフォント処理は少し異なります。主に次の 2 つの違いがあります。
- ベースマップ レイヤおよび最適化されたマップ サービスでは、誤った斜体または太字スタイルを描画しません。この場合、問題となるマップ ドキュメントの解析時に警告が表示されます。
- ベースマップ レイヤおよび最適化されたマップ サービスは、特定の文字セットまたは書体が使用できない場合でもフォント フォールバック機能を提供しません。
誤った斜体または太字とは、フォントが太字または斜体スタイルでは提供されていない場合や、特性の組み合わせに対応するフォントがインストールされていない場合のことを指します。たとえば、Verdana Bold と Verdana Italic は存在しますが、Verdana Bold Italic は存在しません。
このような場合、ArcMap または標準マップ サービスは元のフォントを図形として斜めにする(斜体)か、または太くする(太字)ことでこれらの特性を再現しようとします。
この動作は、常に書体の実際の太字または斜体バージョンに視覚的に対応するわけではありません。実際、一部のフォント(マーカー シンボルとして使用する目的で設計された Esri フォントなど)では太字または斜体スタイルで表示する意味がありません。ベースマップ レイヤおよび最適化されたマップ サービスでは、システムで使用可能なフォントおよびフォント スタイルのみを表示します。
常にテキストが期待どおりにレンダリングされていることを確認してください。テキストが太字または斜体になっていない場合、該当する書体のスタイルがシステムで使用可能であることを確認してください。
フォント リンキングおよびフォント フォールバック
フォントには、作成者が設定した特定の文字群(ラテン文字の A、中国の文字の [チエン] など)に対する、異なる文字セット(西ヨーロッパ文字、キリル文字など)の定義が含まれています。フォント フォールバックおよびフォント リンキングは、指定したフォントでは実際に存在しない文字を、その文字を含む別の似たフォントで描画することによって文字を表示する手法です。これらの手法はラテン文字を東アジア文字のみを含むフォントで表示したり、またはその逆の表示を行うためによく使用されます。
このような場合、標準の ArcMap 表示では Windows GDI(Graphics Device Interface、Windows 内蔵のグラフィックス システム)を使用して、フォントに存在しない文字をその文字を含む別のフォントにリンクしようとするため、フォントに存在しない文字があってもテキスト文字列を表示することができます。ほとんどの場合、元のフォントとリンクされたフォールバック フォントとの間でさまざまな違いが生じるのに加えて、カーニングや他の特徴にも不一致が生じるため、異常な表示または振舞いになります(以下の図を参照)。
上記の他にも問題があるため、フォント フォールバックを使用した適切な文字のレンダリングは、どのマップに対してもお勧めしない方法です。ベースマップ レイヤまたは最適化されたマップ サービスでは、指定したフォントに存在しない文字はレンダリングされません。[プレビュー] ウィンドウでベースマップ レイヤを ArcMap またはマップ サービスでプレビュー表示して、この現象が起きる場合を判断します。
一般的に最もよい方法は、必要な文字を含むフォントを使用しようとしている文字セットに活用することです。上記の例では、選択した Arial Unicode MS フォントに Thaana 文字セットがありません。テキストを正しくレンダリングするには、インラインのテキスト書式タグを使用して Thaana 文字を含むフォント(MV Boli フォントなど)に切り替えます。
フォントがフォールバックするかどうかを判断する 1 つの方法は、テキストをコピーしてワードパッドに貼り付ける方法です。フォント フォールバックが使用される疑いがあるテキストを選択します。フォントの名前が文字列の中のカーソルの位置によって変わる場合、このフォントが ArcMap で指定したフォントのかわりに使用されます。
フォント置換
同様の手法であるフォント置換は、指定されたフォントがシステムに存在しない場合にテキストを異なるフォントで表示する方法です。たとえば、マップが Helvetica フォントを使用したテキストを含んでいるものの、Helvetica フォントがコンピュータにインストールされていない場合、テキストは Arial フォントに置換されて表示されます。
ベースマップ レイヤおよび最適化されたマップ サービスでは標準マップ サービスまたは ArcMap と同様、フォント置換を使用することができます。ただし一般的には、マップを使用するコンピュータおよび ArcGIS Server がインストールされているコンピュータでマップに使用されているフォントを利用可能にすることが最善の方法です。