問題タブ [leaflet.markercluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 関数 zoom to cluster は、同じ緯度/経度に複数のマーカーがあるクラスターを閉じます
マーカー クラスターとマーカー クラスター レイヤー サポート プラグインを使用して、リーフレットでマップを作成しています。
複数のオーバーレイを持つレイヤー コントロールがあるため、それらのいくつかをチェックすると、同じ緯度/経度で異なるデータのマーカーがポップアップします。
これらのポイントは適切にクラスター化されていますが、同じ緯度/経度でポイントのクラスターをクリックすると、クラスターが中央に配置されないという問題が発生しています。手動でクリックしてドラッグし、中央に配置します。
緯度/経度が異なるポイントを持つクラスターをクリックすると、ズームインしてそのエリアが中心になります。これを修正するために、これら 2 つの関数を追加しました。1 つはマーカーに個別に適用して、クリックするとマーカーがマップの中心になるようにし、もう 1 つはクリックされたクラスターに適用して、マップがクラスターの境界にズームするようにします。
クラスターをクリックすると、展開して同じポイントにマーカーが表示されますが、クラスターをズームして中央に配置し、クラスターを閉じるため、もう一度クリックしてマーカーを表示する必要があります。私はこれが起こることを望んでいません。
panTo を使用する関数は、クラスターのクリックでうまく機能するのではないかと考えていますか? しかし、これを実装する方法がわかりません。ありがとう!これらは関数です:
javascript - Leaflet.MarkerCluster.LayerSupport ページのリロード時に可視レイヤーを保存
この投稿を明確にするのは私にとって困難でした...
次のプラグインを使用して Leaflet マップを拡張しています。
- Leaflet.MarkerCluster
- Leaflet.MarkerCluster.LayerSupport
私のページにはヘッダー div とマップ div があります。ヘッダーには、GET 変数を渡し、ページをリロードし、ピン/クラスターを取得する SQL Server クエリを実行する HTML 5 フォームが含まれています。
フォームが送信されるたびに、ページがリロードされ、Leaflet.MarkerCluster.LayerSupport プラグインの可視レイヤーが再チェックされます (リンクされた画像の赤い四角形を参照)。
基本的に、赤い四角形のチェック ボックスは、ページが更新されると常にチェックされますが、フォームの送信ボタンがクリックされたときと同じ状態で読み込まれるようにします。
Cookie を簡単に保存したり、どのレイヤーがチェックされている (表示されている) かを保存する変数を渡したり、ページのリロード時にその状態でそれらをロードしたりする方法はありますか? レイヤー コントロールは、自分のコードではなく、主にプラグインによって生成されます。
どうもありがとうございました、
ニック