1

私は GPS ベースの追跡アプリケーションを構築しています。アイデアは、過去 24 時間の車両の合計ルートを、平均 30 分ごとにデータで表示することです。

これらのデータに加えて、あらゆる種類のゴーフェンス、ルート マーカー、輸送中の車両のさまざまな状態に基づくさまざまなカラー コード、GPS デバイスがデータを送信するさまざまな角度に基づくルートのさまざまな画像があります。

これらすべてを考慮すると、データは非常に大きく、多くのロジックと条件が整っています。

xml を作成してマップ上にレイヤーとしてレンダリングし、他の色のアイコンを配置することで、Google マップを読み込んでいます。

XML ファイルから Google Map API アプローチへのマーカーの読み込みは、実装の基本です。3 秒ごとにマップを ajax で更新し、完全な xml をレイヤーと共に配置します。

問題:

  1. ajax 呼び出しが行われるたびにアイコンと画像を含むマップがぎくしゃくし、マップの自動更新の感触が得られない
  2. マップ上に大量のデータが存在する場合、アプリケーションが非常に遅くなり、ブラウザが何度もクラッシュする

助けが必要:

  1. XML ロードは、マップをロードする最も最適な方法ですか?
  2. 他のより良いオプションはありますか - 提案してください
  3. 多くのフォーラムが https://developers.google.com/maps/documentation/javascript/kmllayerを指して いますこれは取るべきアプローチですか
4

1 に答える 1

1

データの表示を最適化する必要があると思います。XML メソッドは問題ありません。問題は、XML メソッドが多すぎることです。

まず、 google.maps.Map クラスgetBounds()のメソッドを使用して、ユーザーのビュー内にあるマーカーのみを表示することができます。ユーザーが10個しか見ることができないのに、なぜ10,000個のデータを描画するのですか? それに応じてビューを更新できるように、イベント もリッスンする必要があります。
bounds_changed

第二に、ユーザーが広い範囲を見ている場合でも、すべてのマーカーを表示したくはありません。遅いだけでなく、恐ろしい経験です。
ここに画像の説明を入力
代わりに、iOS の Photos アプリの領域ごとのグループ化機能が行っていたのと同じように、データをグループ化する必要があります。
ここに画像の説明を入力

また、マーカーを削除して作成するのではなく、リサイクルしてください。

于 2015-03-27T19:12:49.733 に答える