マップ サービスの描画動作
ベースマップ レイヤとマップ サービスは高性能な描画エンジンを使用して、パフォーマンスの改善と描画品質の向上を実現します。この描画エンジンは、サポートされているすべてのシンボル タイプに対して優れたパフォーマンスを発揮します。
この描画エンジンは ArcMap で使用される描画エンジンとは異なるため、マップ サービスで描画されるマップの表示にはいくつかの重要な違いがあります。[準備] ウィンドウでは、これらのさまざまな違いを通知する警告を表示します。
次のセクションでこれらの描画の違いとその理由について説明します。
テキストおよび絵文字マーカーのアンチエイリアス
ArcMap では、テキストおよび絵文字マーカーのアンチエイリアスはコンピュータの表示設定で構成されるフォント スムージング設定によって制御されます。この設定はユーザごとに構成され、マップ サービスの一部として設定されるものではありません。
マップ サービスでは、これらの設定をサービスごとに構成し、サービス定義(*.sd)ファイルの一部として保存します。これらのテキスト アンチエイリアスの設定は、[サービス エディタ] の [パラメータ] タブで設定します。
ベースマップ レイヤで描画されるテキストは、常に [すべて(推奨)] オプションを使用して描画されます。ベースマップ レイヤのラベルは 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 と同様にフォント置換を利用できます。ただし、一般的に最善となる方法は、マップで使用されているフォントがマップを使用するコンピュータで利用可能にすることです。