2017-02-27 2 views
1

リーフレットを使用して多数のマーカー(10000)を追加すると、ブラウザーの速度が低下します。 マーカーは5秒ごとに移動しています。 このようなシナリオでは、パフォーマンスの問題をどのように解決できますか。 注:Clustermarkerには1つの問題があります。移動するマーカーを追跡することは困難です。リーフレットを使用して多くのマーカーを追加するとブラウザが遅くなります

答えて

0

私は同じ問題を抱えていました.1000マーカーがあまりにも多くの情報であるため、私はそれをバイパスしました。

私は2つのイベントに置く:特定のズームレベルに

  1. を、私は(あまり)マーカーを持っている私のデータベースを照会。引数で私は地図の座標like this exampleを与える。ヒント:私はステップ2を予期するために緯度と経度に+1と-1を加えます
  2. 私はイベントleafletDirectiveMap.mooveendを持っています。このイベントが呼び出されると、私はステップ1をやっています。ヒント:このイベントでは300ミリ秒でタイムアウトします。

すべてのマーカーを表示する必要がある場合は、特定のズームでヒートマップレイヤーを使用すると、別のバイパスが行われる可能性があります。

申し訳ありませんあなたの問題の解決策ではない場合は、私はthis exampleを試してみると、10000マーカー減速ブラウザが表示されます。

+0

ありがとうございました。しかしマーカーは常に少なくとも10000以上です。 – adi

0

L.marker()をお使いですか?私はL.divIcon()でより良いパフォーマンス結果を出しました。

また、マーカを直接キャンバスに描画することもできます(Leaflet MaskCanvasのように)。また、キャンバスに描かれたマーカーを更新することもできます。注:これはプラグアンドプレイの提案ではありません。このアイデアを機能させるには、コーディングを行う必要があります。

ここからは、GIS StackExchange questionthis other GIS StackExchange questionといういくつかのアイデアがあります。

+0

私はL.markerとL.divIconの両方を試しました。あまり改善はありませんでした。 – adi

関連する問題