2017-12-22 6 views
0

多角形のFeatureCollectionをマップ(1つのGeoJSONLayer)にレンダリングしました。各ポリゴンのサイズは大きい(5MB、10MB)。ユーザーとのやりとりにより、ポリゴンの色は常に再計算されます&。我々はdata-drivenメソッドを使用し、各フィーチャのプロパティにデータを保持しています。したがって、GeoJSONLayerは、データと色が変更されるたびに.setData(geojson)を呼び出す必要があります(プロパティに保持されます)。 上記のアプローチは、geojsonsのサイズが大きく、.setData()の呼び出しが高価であるため、パフォーマンスの問題につながることがわかります。 私はgeojsonソースとデータ、スタイル、色分け、直接の呼び出しを分けることを考えていますfunction (setPaintProperty)色が変わったときはいつでも良いでしょう。データドリブンの色を変えたときのパフォーマンス(setPaintPropertyを使用した場合と比較して)

誰かが.setData.setPaintPropertyが同じことをすると、どちらも2が両方のポリゴンを再レンダリングするトリガーになると私に言いました。

は親切にこの問題について

おかげでたくさんのアドバイスに助けが必要!

map.setData(mylayer, mygeojson) 

map.setPaintProperty(mylayer, 'fill-color', ...mydatadrivenproperty) 

私がテストしていませんが、最初のものはに持っているので、私は、第二が高速であると仮定したい:私が正しくあなたを理解していれば

答えて

0

、あなたが求めているが、これらの2のどちらが速いです:

  1. にGeoJSONを解析
  2. リペイント
ベクトルタイルに変換

2番目のプロパティは、プロパティの再描画を解析するだけです。見るために両者を試してみてください。

また、第2のレイヤーがハイライト表示され、map.setFilter(mylayer, ...)を呼び出して更新する方法も考えられます。

+0

返信いただきありがとうございます。私は試してみたところ、私の場合は2番目の方が速い –

関連する問題