2013-03-03 3 views
1

지도에 표시되는 이름 (라벨)/경계를 다양한 확대/축소 수준에서 변경할 수 있습니까?세부 조정 수준 (Google지도 API)

예를 들어 나는 17 단계로 확대 할 수 있습니다. 확대/축소 수준 10에서만 세부 정보 (국가 이름)를 표시하고 싶습니다.

다른 말로하면 : 확대/축소 수준과 연결된지도의 세부 수준과 조정 방법은 어떻습니까?

답변

4
function show_map(lat, lng) { 
    var labelsOff = [{ 
     featureType: "administrative", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "off" 
     }] 
    }, { 
     featureType: "poi", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "off" 
     }] 
    }, { 
     featureType: "water", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "off" 
     }] 
    }, { 
     featureType: "road", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "off" 
     }] 
    }]; 

    var labelsOn = [{ 
     featureType: "administrative", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "on" 
     }] 
    }, { 
     featureType: "poi", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "on" 
     }] 
    }, { 
     featureType: "water", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "on" 
     }] 
    }, { 
     featureType: "road", 
     elementType: "labels", 
     stylers: [{ 
      visibility: "on" 
     }] 
    }]; 

    latlng = new google.maps.LatLng(51.477391, -0.000853); 
    myOptions = { 
     zoom: 3, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("map"), myOptions); 
    map.setOptions({ 
     styles: labelsOff 
    }); 

    google.maps.event.addListener(map, 'zoom_changed', function() { 
     google.maps.event.addListenerOnce(map, 'tilesloaded', function() { 
      if (map.getZoom() >= 10) { 
       map.setOptions({ 
        styles: labelsOn 
       }); 
      } else { 
       map.setOptions({ 
        styles: labelsOff 
       }); 
      } 
     }); 
    }); 

} 


show_map(); 

희망 사항입니다. 분명히 당신은 다른 것들을 숨기기 위해 그 피쳐 타입을 편집 할 수 있습니다.

죄송합니다. 분실 한 the fiddle!