0

この投稿を明確にするのは私にとって困難でした...

次のプラグインを使用して Leaflet マップを拡張しています。

  • Leaflet.MarkerCluster
  • Leaflet.MarkerCluster.LayerSupport

私のページにはヘッダー div とマップ div があります。ヘッダーには、GET 変数を渡し、ページをリロードし、ピン/クラスターを取得する SQL Server クエリを実行する HTML 5 フォームが含まれています。

フォームが送信されるたびに、ページがリロードされ、Leaflet.MarkerCluster.LayerSupport プラグインの可視レイヤーが再チェックされます (リンクされた画像の赤い四角形を参照)。

基本的に、赤い四角形のチェック ボックスは、ページが更新されると常にチェックされますが、フォームの送信ボタンがクリックされたときと同じ状態で読み込まれるようにします。

マイマップ

Cookie を簡単に保存したり、どのレイヤーがチェックされている (表示されている) かを保存する変数を渡したり、ページのリロード時にその状態でそれらをロードしたりする方法はありますか? レイヤー コントロールは、自分のコードではなく、主にプラグインによって生成されます。

制御コード

どうもありがとうございました、

ニック

4

1 に答える 1

0

標準のリーフレット レイヤー コントロールを使用する場合、マップに追加またはマップから削除されるレイヤーを監視し、それに応じてチェックボックスをオンまたはオフにします。

したがって、以前にユーザーがチェックを外したレイヤーを適切に再追加する (または、あなたの場合は追加しない) だけです。

どのレイヤーがチェックされていないかマップから削除されたかを取得する場合、実装を選択するのはあなた次第です。すでに HTML フォームを送信しているので、削除されたレイヤーを伝える追加の値をいくつか送信し、新しいページでクライアントに送り返すことができます。

より現代的なアプローチでは、ページの更新を避け、AJAX スキームを使用します。

ただし、スクリーンショットを見ると、標準のレイヤー コントロールを使用していないように見えます。その場合、そのコントロールが実際にどのように機能するかによって異なります。

于 2017-11-02T16:58:38.743 に答える