23 - マーカークラスタリングの概念

学習内容: 多数のマーカーをグループ化して表示するクラスタリングの基本概念を学びます。

ポイント:

注意: これは概念を理解するためのシンプルな実装です。本番では専用プラグインを推奨します。

マーカー数: 0 | クラスタ数: 0 | クラスタリング: ON
// シンプルなクラスタリングの概念
// 実際のプロジェクトでは Leaflet.markercluster を使用してください

// マーカーをクラスタ化する関数
function clusterMarkers(markers, radius) {
    const clusters = [];

    markers.forEach(marker => {
        let added = false;

        // 既存のクラスタに追加できるか確認
        for (let cluster of clusters) {
            if (distance(marker, cluster.center) < radius) {
                cluster.markers.push(marker);
                added = true;
                break;
            }
        }

        // 新しいクラスタを作成
        if (!added) {
            clusters.push({
                center: marker.getLatLng(),
                markers: [marker]
            });
        }
    });

    return clusters;
}
            
// 2. L.markerClusterGroup() を使用 // const cluster = L.markerClusterGroup(); // markers.forEach(m => cluster.addLayer(L.marker([m.lat, m.lng]))); // map.addLayer(cluster);