私はグーグルアースプラグインでベクトルのヒープ全体をレンダリングしようとしています。parseKmlメソッドを使用してKmlFeatureオブジェクトを作成し、配列に保存します。コードは次のようになります。データベースから返された10,000kmlのオブジェクトのリストをループして、プラグインに描画します。
// 'currentKml' is a kml string returned from my DB.
// I iterate over 10,000 of these
currentKmlObject = ge.parseKml(currentKml);
currentKmlObject.setStyleSelector(gex.dom.buildStyle({
line: { width: 8, color: '7fff0000' }
}));
ge.getFeatures().appendChild(currentKmlObject);
// After this, I store teh currentKml object in an array so
// I can manipulate the individual features.
これはうまくいくようです。ただし、これらすべての機能の表示を一度にオンまたはオフにしたい場合は、配列内のこれらすべてのkmlオブジェクトを繰り返し処理し、個々の表示をオンまたはオフに設定する必要があります。これは少し遅いです。ズームアウトすると、各線がゆっくりと消えていくのがわかります。すべての線が消えたり戻ったりするまでに約5〜10秒かかります。
レイヤーを追加し、すべてのオブジェクトをこのレイヤーの子として追加することで、このプロセスを高速化できるかどうか疑問に思いました。このようにして、レイヤー全体の可視性をオンまたはオフに設定します。
しかし、コードで新しいレイヤーを作成する方法を見つけることができませんでした。誰かが適切な方法を指摘できれば、それは素晴らしいことです。レイヤーがプロセスをスピードアップするための正しいアプローチであるかどうかもわかりません。マップ内のこれらすべてのオブジェクトを一度にオン/オフにするプロセスを高速化する方法について他に提案がある場合は、それも非常に役立ちます。
よろしくお願いします。