-1

MarkerClustererを使用して、マーカーのカテゴリのみをクラスタリングしたいと思います。 ここには10個のマーカーがあります。私は "タイプ"変数、すなわち "クラスタ"または "nocluster"を使用して、それらのうち8つだけをクラスタリングしたいと思います。任意のアイデアをGoogle map API:特定のマーカーのカテゴリにのみMarkerClustererを適用

は簡単に聞こえるが、私はそれを行うための任意のヒントを見つけることができませんでした... ?あなたはマーカーがクラスタ化する場合は、その後、markerClusterに追加し、そうでない場合は、ちょうどmarker.setMap(map)を使用 -

は、それは簡単です、あなたに

<script> 

    function initMap() { 

     var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 8, 
     center: { 
      lat: 48.371310, 
      lng: 7.593634 
     }, 
     gestureHandling: 'cooperative' 
     }); 

     var markers1 = locations.map(function(location, i) { 

     var marker = new google.maps.Marker({ 
      position: location, 
      type: location.type 
     }); 

     }); 

     // Add a marker clusterer to manage the markers. 
     var mcOptions = {gridSize: 50, maxZoom: 10, styles: [{ 
     anchor:[0,0], 
     textSize: 14, 
     height: 50, 
     width: 50 
     }] 
    }; 

     var markerCluster = new MarkerClusterer(map, markers1, mcOptions); 

    } /* end FUNCTION initMap */ 

    var locations = [ 
      {num: '1', type: 'cluster', lat: 49.050288, lng: 7.950412}, 
      {num: '2', type: 'cluster', lat: 48.929413, lng: 7.852254}, 
      {num: '3', type: 'cluster', lat: 48.926529, lng: 7.361955}, 
      {num: '4', type: 'cluster', lat: 48.892072, lng: 7.655839}, 
      {num: '5', type: 'cluster', lat: 48.887685, lng: 7.785195}, 
      {num: '6', type: 'cluster', lat: 48.857382, lng: 7.321078}, 
      {num: '7', type: 'cluster', lat: 48.856634, lng: 7.319182}, 
      {num: '8', type: 'cluster', lat: 48.761871, lng: 7.967141}, 
      {num: '9', type: 'nocluster', lat: 48.736924, lng: 7.709988}, 
      {num: '10', type: 'nocluster', lat: 48.749944, lng: 7.340100} 
      ]; 

    google.maps.event.addDomListener(window, "load", initMap); 

</script> 

<script src="js/markerclusterer.js"></script> 

答えて

1

ありがとうございます。それはそれで何もしないので、

google.maps.Markerは(しかも、それを取得するためのメカニズムはありません)あなたが渡しているtypeキーを無視するので、あなたはおそらく、マーカーの二組作成する必要があります。

var markersToCluster = []; 
var markersToNotCluster = []; 
locations.forEach(function(location, i) { 
    var marker = new google.maps.Marker({position:location}); 
    location.type === 'something' ? markersToCluster.push(marker) : markersToNotCluster.push(marker); 
}); 

var markerCluster = new MarkerClusterer(map, markersToCluster, mcOptions); 
markersToNotCluster.forEach(function(m) { m.setMap(map); }); 
+0

ありがとう、それは完璧に動作します! – charlie

関連する問題