2012-10-08 1 views
4

현재 마커를 클러스터하려면 MarkerClustererPlus을 사용하고 있습니다. (다른 제안은 환영합니다.) 그리고 나는 대륙이 아닌 대륙이나 국가라고 말할 수있는 방법이 있는지 궁금합니다. 감사합니다.국가별로 Google지도 아이콘을 클러스터링 할 수있는 방법이 있습니까?

+0

를 시도? 데이터베이스에서 온 경우 서버 측에서 원하는 모든 매개 변수에 따라 클러스터링 (그룹화)하는 것이 매우 간단해야합니다. – Marcelo

+0

가능한 중복 http://stackoverflow.com/questions/12592079/google-maps-api-v3-utilize-markercluster-ba--have-the-clusters-themselves-be – geocodezip

답변

3

이 메시지는 Marker Manager이며, 실제로 현재 사용중인 라이브러리와 동일한 서버에 있습니다. 여기에 예제를 제공 할 필요가 없다고 생각합니다. 모두 right here입니다.

3

은 지역에 따라 클러스터링이 코드 .. 마커에서 온 않는

var keys = []; 
var markerCluster = []; 
var markers = new Object(); 
var map; 

function initialize(){ 
var mapProp = { 
    center:center, 
    zoom:5, 
    mapTypeId:google.maps.MapTypeId.ROADMAP 
    }; 
    map=new google.maps.Map(document.getElementById("googleMap") 
    ,mapProp); 

//styling cluster image.. 
    var clusterStyles = [ 
    { 
    opt_textColor: 'black', 
    url: 'images/cluster.png', 
    height: 56, 
    width: 55 
    }, 
    { 
    opt_textColor: 'black', 
    url: 'images/cluster2.png', 
    height: 53, 
    width: 52 
    } 
    ]; 

    //cluster marker options.. 
    var mcOptions = { 
      // gridSize: 16, 
      styles: clusterStyles, 
      maxZoom: 15 
       }; 
function initialize(){ 
var mapProp = { 
    center:center, 
    zoom:5, 
    mapTypeId:google.maps.MapTypeId.ROADMAP 
}; 
    map=new google.maps.Map(document.getElementById("googleMap") 
    ,mapProp); 

//styling cluster image.. 
    var clusterStyles = [ 
    { 
    opt_textColor: 'black', 
    url: 'images/cluster.png', 
    height: 56, 
    width: 55 
    }, 
    { 
    opt_textColor: 'black', 
    url: 'images/cluster2.png', 
    height: 53, 
    width: 52 
    } 
    ]; 

    //cluster marker options.. 
    var mcOptions = { 
      // gridSize: 16, 
      styles: clusterStyles, 
      maxZoom: 15 
      }; 
    //fetching lat long from data base 
    <?php echo "addmarker(lat,lng); ?>" 
    for(var k in markers) keys.push(k); 
      for(var i = 0; i < keys.length; i++) 
      { 
       markerCluster[i] = new MarkerClusterer(map,  markers[keys[i]],mcOptions); 
      } 
} 
function addmarker(lat, lng) 
{ 
    var provnce; 
    var mycenter = new google.maps.LatLng(lat,lng); 
    var marker = new google.maps.Marker({ 
     position:mycenter, 
     title:infoName, 
     id: count++ 
     // animation:google.maps.Animation.BOUNCE 
     }); 
    //clustering markers based on region.. 
    $.ajax({ url:'https://maps.googleapis.com/maps/api/geocode/json? latlng='+lat+','+lng+'&sensor=true', 
     async: false, 
     success: function(data){ 
         // console.log(data.results[0]); 
         // return; 
      for (var i=0; i<data.results[0].address_components.length; i++) 
      { 
       if (data.results[0].address_components[i].types[0] == "administrative_area_level_1") { 
         //this is the object for province 
         provnce = data.results[0].address_components[i]['long_name']; 
        } 
      } 
      provnce = provnce.split(" ",1); 
      if(markers.hasOwnProperty(provnce)) 
      { 
       markers[provnce].push(marker); 
      } 
      else 
      { 
       markers[provnce] = new Array(); 
       markers[provnce].push(marker); 
      } 
      // console.log(markers); 
      } 
     }); 
} 
관련 문제