日本語

エラー: 表示するフィーチャの数が多すぎるため、レイヤーは完全に描画されませんでした

エラー メッセージ

ArcGIS Online マップ ビューアーでホスト フィーチャ サービスを表示する際に、「表示するフィーチャの数が多すぎるため、レイヤーは完全に描画されませんでした」という警告が表示されることがあります。 このメッセージは、マップ ビューアーで多数のフィーチャを表示しようとした際に表示されることがあります。 このメッセージは、マップ範囲に表示されるはずのフィーチャすべてを完全に描画できず、一部のフィーチャが表示されない可能性があることを示す警告です。

User-added image

サービスからのフィーチャをマップ ビューアーに表示する際には、フィーチャがサービスから返されて Web マップに表示されるように、サーバーにリクエストが送信されます。 マップ ビューアーからサービスに送信されるリクエストのタイプは、一度に表示できるフィーチャ数を定義するパラメーターを含むクエリ リクエストです。

原因

以前は、ホスト フィーチャ サービスから一度に描画できるフィーチャの数は、サーバーから返されるレコードの最大数を設定することによって決定していました。これは [最大レコード数] と呼ばれるものです。 [最大レコード数] は、サービスの公開時に ArcMap の [サービス エディター] ダイアログ ボックスで設定するか、自動的に割り当てられます。これは公開時に使用するワークフローによって異なります。 通常のクエリ リクエストを操作する場合は、今も [最大レコード数] でサービスから一度に返すことができるフィーチャ数を決定します。 ただし、現在のマップ ビューアーは別のタイプのクエリ リクエストを使用しています。

現在のマップ ビューアーでは、一度に表示されるフィーチャの数は、MaxRecordCount 値ではなく tileMaxRecordCount プロパティによって決定されます。 tileMaxRecordCount 値は [最大レコード数] と異なり、サービスの公開時に手動で変更することができず、サービス定義に自動的に割り当てられます。

フィーチャを表示するときに、マップ ビューアーはサービスの tileMaxRecordCount と、現在の Web マップの範囲を合わせて使用します。 Web マップの範囲は「タイル」と呼ばれるセクションに分割され、これらはマップには表示されません。 マップ ビューアーの範囲に存在するタイルごとに 1 つのリクエストがサービスに送信されます。 サービスの tileMaxRecordCount は各タイル内に表示されるフィーチャの数を制限します。 タイル内のフィーチャの数が tileMaxRecordCount より少ない場合は、このタイル内のすべてのフィーチャを表示できます。 タイル内のフィーチャの数が tileMaxRecordCount を超えると、すべてのフィーチャを表示できなくなるため、「レイヤーは完全に描画されませんでした」という警告メッセージが返されます。

サービスの REST エンドポイントや URL を表示する場合、tileMaxRecordCount パラメーターの値は [最大レコード数] とは異なる方法で表示されます。 tileMaxRecordCount の値は、サービスの REST エンドポイントの管理ビューを介してのみ表示できます。 このページにアクセスするには、サービス URL の /rest と /services の間に「/admin」を追加してください。 たとえば、次のように指定します。

http://services.myserver.com/ERmEceOGq5cHrItq/ArcGIS/rest/admin/services/USA/FeatureServer
注意:
管理ビューにアクセスするには、サービスの所有者になる必要があります。 

REST エンドポイントの管理ビューで、ページの下部にある Update Definition に移動して、定義の詳細内で tileMaxRecordCount property を見つけます。 下の画像では、tileMaxRecordCount がデフォルトで 4000 に設定されています。 これは、マップ ビューアーがサービスを表示するようにリクエストした場合、1 タイルあたり 4000 のフィーチャのみを表示できるという意味です。 ポイント フィーチャについては、tileMaxRecordCount が 8000 にデフォルト設定されています。 ポリラインとポリゴンについては、この値が 4000 にデフォルト設定されています。これらのフィーチャにはより多くの頂点が存在するからです。

User-added image

Web マップを拡大または縮小すると範囲も変更され、その範囲内のタイルの数は変更される場合と変更されない場合があります。 サービスが上部に表示されるベースマップは、縮尺レベルごとに定義されたタイルのグリッドに分割されます。 拡大すると、タイルは以前の縮尺レベルと比べて小さくなり、各タイル内に描画が想定されるフィーチャ数は少なくなります。 したがって、警告メッセージが表示される可能性は低くなります。 逆に縮小すると、タイルが以前の縮尺レベルと比べて大きくなり、1 つのタイル内に収められるフィーチャの数が増えます。 1 タイルあたりに表示できるフィーチャ数の合計は 4000 なので、警告メッセージが表示される可能性は高まります。

解決策または対処法

現時点では、サービスの公開時や、REST でのサービス定義の更新を通して tileMaxRecordCount パラメーターを変更する方法はありません。 ただし、maxRecordCountFactor は、サービス定義の更新を通して変更できます。 サービス定義を更新するには、前述のようにサービス URL の管理ビューを参照します。 サービス定義で、maxRecordCountFactor のパラメーターを見つけます。 このパラメーターのデフォルト値は 1 です。 tileMaxRecordCount を増大させて各タイルに描画できるフィーチャの数を増やすことが目的であれば、この値を 1 より大きい値に増やします。 各タイル内に描画されるフィーチャの数を減らすには、この値を 1 より小さい数に減らします。

注意:
maxRecordCountFactor の値を増大させるとブラウザーのパフォーマンスに影響する可能性があるので、この値の変更はお勧めできません。 

関連情報