マーカー クラスターとマーカー クラスター レイヤー サポート プラグインを使用して、リーフレットでマップを作成しています。
複数のオーバーレイを持つレイヤー コントロールがあるため、それらのいくつかをチェックすると、同じ緯度/経度で異なるデータのマーカーがポップアップします。
これらのポイントは適切にクラスター化されていますが、同じ緯度/経度でポイントのクラスターをクリックすると、クラスターが中央に配置されないという問題が発生しています。手動でクリックしてドラッグし、中央に配置します。
緯度/経度が異なるポイントを持つクラスターをクリックすると、ズームインしてそのエリアが中心になります。これを修正するために、これら 2 つの関数を追加しました。1 つはマーカーに個別に適用して、クリックするとマーカーがマップの中心になるようにし、もう 1 つはクリックされたクラスターに適用して、マップがクラスターの境界にズームするようにします。
クラスターをクリックすると、展開して同じポイントにマーカーが表示されますが、クラスターをズームして中央に配置し、クラスターを閉じるため、もう一度クリックしてマーカーを表示する必要があります。私はこれが起こることを望んでいません。
panTo を使用する関数は、クラスターのクリックでうまく機能するのではないかと考えていますか? しかし、これを実装する方法がわかりません。ありがとう!これらは関数です:
markerClusters.on('clusterclick', function (a) {
a.layer.zoomToBounds();
});
map.on('popupopen', function(e) {
var px = map.project(e.popup._latlng); // find the pixel location on the map where the popup anchor is
px.y -= e.popup._container.clientHeight/2 // find the height of the popup container, divide by 2, subtract from the Y axis of marker location
map.panTo(map.unproject(px),{animate: true}); // pan to new center
});