あなたの経験では、OpenLayersベクターレイヤー(新しいOpenLayers.Layer.Vector( "ポイントレイヤー"))を使用できないほど遅くなる前に、いくつのポイントフィーチャを追加できますか?
私の使用例は、データベーステーブルからポイントを表示することです。ユーザーは、視覚化する時間枠を決定できます。したがって、結果はごく少数から潜在的に100,000ポイントになる可能性があります。妥当な制限を導入し、クエリがより多くの機能を返す場合はユーザーに警告したいと思います。
あなたの経験では、OpenLayersベクターレイヤー(新しいOpenLayers.Layer.Vector( "ポイントレイヤー"))を使用できないほど遅くなる前に、いくつのポイントフィーチャを追加できますか?
私の使用例は、データベーステーブルからポイントを表示することです。ユーザーは、視覚化する時間枠を決定できます。したがって、結果はごく少数から潜在的に100,000ポイントになる可能性があります。妥当な制限を導入し、クエリがより多くの機能を返す場合はユーザーに警告したいと思います。
回答:
決定的な答えはありませんが、OLマップ上でさまざまなポイント数で遊ぶことができるページを作成しました:http : //derekswingley.com/lab/olpts/
機能番号が高すぎるために表示が遅くなる場合は、表示するデータがズームレベルに適していないことを意味します。通常、フィーチャの密度が高くなりすぎると、ディスプレイを読み取ることができなくなります(この例を参照)。処理の制限がなく、すべての表示デバイスが1000000000000の機能を0.001で小さな画面に表示できたとしても、視覚化は不可能なままです。
Töpferの基数の法則では、ズームレベルに関係なく、フィーチャの密度は一定のしきい値を下回らないようにします。この問題を解決し、可視化スケールにデータを適合させる方法は、使用して、それを変換することです汎化操作のように、この1またはこの他のものを。
OpenLayers 6には、時間ベースのフィルタリングで数十万の機能をレンダリングできるWebGLポイントレンダラーがあります。https://openlayers.org/workshop/en/webgl/にある公式ワークショップの最新バージョンをご覧ください。
OpenLayers 2では、これ以上使用することはお勧めしませんが、許容されるフレームレートの最大値は、数百の機能のみになります。
上記のニーズに合うかどうかはわかりませんが、似たようなユースケースを見つけましたがClustering
、OL 5で採用しました。
言葉が示すようにクラスタリングすることで、特定の都市で100ポイントを持って、たとえば、すべての点がLETだと言うのズームから1ポイントとして表示されますポイントのグループを取り、単一のポイントでtogtherそれらをマージする4
が、レッツのズームから個々の点として、つまり10
、ズームが4
可能であれば、それらのポイントを1つとして結合できます。これにより、特定の領域にレンダリングされるポイントの数を減らすことができます。
言い換えると、地図上に10,000個のポイントをレンダリングし、それらが互いに非常に近いため、それらのクラスターを作成してレンダリングを削減し、ユーザーがズームインしてもクラスターを破壊し続けるとしましょう。これにより、レンダリングが少なくなり、パフォーマンスが向上します。
満足のいくパフォーマンス。Openlayersのクラスタリング例へのリンク