ベースマップ レイヤーとマップ サービスは高性能な描画エンジンを使用して、パフォーマンスの改善と描画品質の向上を実現します。この描画エンジンは、サポートされているすべてのシンボル タイプに対して優れたパフォーマンスを発揮します。
この描画エンジンは ArcMap で使用される描画エンジンとは異なっており、マップ サービスで描画されるマップの表示には重要な違いがあります。[準備] ウィンドウでは、これらのさまざまな違いに関する警告を表示します。
次のセクションでこれらの描画の違いとその理由について説明します。
テキストおよび絵文字マーカーのアンチエイリアス
ArcMap では、テキストおよび絵文字マーカーのアンチエイリアスはコンピューターの表示設定で構成されるフォント スムージング設定によって制御されます。この設定はユーザーごとに構成され、マップ サービスの一部として設定されるものではありません。
マップ サービスでは、これらの設定をサービスごとに構成し、サービス定義ファイル (*.sd) の一部として保存します。これらのテキスト アンチエイリアスの設定は、[サービス エディター] の [パラメーター] タブで設定します。
ベースマップ レイヤーで描画されるテキストは、常に [すべて (推奨)] オプションを使用して描画されます。ベースマップ レイヤーのラベルは ArcMap の表示を使用して描画され、上で説明したコンピューターの設定に従います。
ベースマップ レイヤーとマップ サービス描画エンジンでは、テキストおよび絵文字のアンチエイリアスを有効化する際に異なる方法が使用されます。また、このアンチエイリアスの実行に使用されるアルゴリズムも異なり、テキストおよび絵文字マーカーのレンダリングの動作にも ArcMap の表示と比較していくつかの異なる点があります。
座標の丸め方の違い
ArcMap では、画面上に表示されるエレメントを整数座標で指定します。フィーチャの実際の座標 (ラインやマーカーなど) を整数座標で正確に表せない場合は、切り上げまたは切り捨てが行われます。これにより、非常に細いラインや外縁ラインのような非常に細いエレメントの場合、不正確な表示になる可能性があります。指定されたズーム レベルまたは表示範囲において、1 ピクセル未満のサイズのラインは 1 ピクセルに切り上げられます。
ベースマップ レイヤーおよびマップ サービスでは、描画エンジンはサブピクセル単位の座標を使用して、マップ上にフィーチャを配置および描画することができます。これにより、フィーチャの配置およびシンボル表示が非常に正確になります。
ただし、マップのシンボルが元々 ArcMap で設計されていた場合、ベースマップ レイヤーまたはマップ サービスでの表示が異なる場合があります。これは、特にライン シンボルの場合に顕著です。
これらの問題の詳細と、特定の解像度でライン シンボルを設計する方法については、「マップ サービスでのライン エイリアシング」をご参照ください。ほとんどの場合、ベースマップ レイヤーではこの問題は起こりません。ベースマップ レイヤーでは、この問題が自動的に修正されます。
ベースマップ レイヤーおよびマップ サービスのシンプル シンボル
シンプル シンボル (シンプル ライン シンボル、シンプル塗りつぶしシンボル、およびシンプル マーカー シンボル) は、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 と同じ方法でフォント置換を使用できます。ただし、一般的に最善となる方法は、マップで使用されているフォントがマップを使用するコンピューターで利用可能にすることです。