0

私は解決策を探していましたが、すべてはjsonファイルなどからポリラインを描画する方法です。主な質問は、[新しいポリライン]ボタンをクリックするたびに新しいポリラインを作成して古いものを配列に格納する機能を取得する方法です。次に、[新しいポリライン]ボタンをクリックした後、ポリラインを残してマップ上に新しいものを描画し、右ボタンをクリックしたときにのみクリーンアップして復元する方法を教えてください。クラスの外にポリラインを保存するか、これのために新しい個別のクラスを作成するのがより良い方法でしょうか?これに別の方法でアプローチする必要がありますか?

悪いデモですが、私が望むことを強調してください:jsfiddle

配列はグローバルスコープに移動されましたが、最後のポリラインのsetMapは、clearOverlays関数を介してのみ機能します。現在、他のボタンで問題が発生しています。追加のグローバルオブジェクトnewPolyを作成しましたが、myPolylineからオブジェクトを取得する方がよいかどうかわかりません。反対側では、復元の場合は、配列ポリラインに格納されているマップに設定できません。

4

1 に答える 1

1

作成したポリラインを保存するには、別のグローバル変数を作成してポリラインを格納し、それらをプッシュすると同時に、配列の最後のポリラインにsetMap(null)を設定します。作成したポリラインは毎回新しいポリラインを作成するため、同じオブジェクトに保存することはできません。だから移動:

this.polyLines = [];

クラスから、グローバルスコープ、または別のクラスに、マーカー配列をそこに残しておくのは問題ありません。これは、そのポリラインインスタンスに対してローカルであるためです。

これも役立つはずです-https://developers.google.com/maps/documentation/javascript/overlays#OverlaysOverview

于 2012-04-27T19:07:51.347 に答える