2013-01-20 2 views
1

이전 버전의 Gmaps API에서 마커를 추가하고 기본지도에서 추가 또는 삭제하는 맞춤형 오버레이를 만들 수 있음을 기억할 수 있습니다. 또한 다른 결과 그룹을 만들어 하나의 명령으로 표시/숨길 수있었습니다. 새 참조에서 찾을 수 없지만 이름을 바꿨습니까?Gmaps 맞춤 오버레이

답변

1

당신은 GLayer에 대해 얘기하고 - https://developers.google.com/maps/documentation/javascript/v2/reference#GLayer

그것은 사실, V3의 API에서 제거되었습니다.

API v3에서는 개발자가 오버레이를 추적하고 맵에서 원하는대로 추가/제거하기 위해 개발자에게 맡겨졌습니다.

이렇게하는 가장 좋은 방법은 오버레이를 배열 (또는 객체)에 유지하고 루프를 반복하는 것입니다. 추가 것을 : 당신이 오버레이 (정보창과 마커)의 두 가지 세트가 있다면

예를 들어, 당신은 같은 것을 할 수있는 :

var overlays = { 
    markers : [], 
    infoWindows : [] 
}; 

    //create a marker and put it in markers 
    var marker = new google.maps.Marker(); 
    overlays.markers.push(marker); 

    //create an infoWindow and put it in infoWindows 
    var infoWindow = new google.maps.InfoWindow(); 
    overlays.infoWindows.push(infoWindow); 

    //remove all infoWindows from the map 
    for(var i=0;i<overlays.infoWindows.length;i++) { 
     overlays.infoWindows[i].setMap(null); 
    } 

    //remove all markers from the map 
    for(var i=0;i<overlays.markers.length;i++) { 
     overlays.markers[i].setMap(null); 
    } 

그것은 단순한 예입니다,하지만 희망 당신은 아이디어를 얻을 관리 및 v3의 오버레이의 "그룹"제거는 개발자에게 맡겨집니다.

+0

지도에서 추가/제거하는 방법은 무엇입니까? – BASILIO

+0

죄송합니다. 충분히 많이 읽지 않았습니다. 또한 FOR 루프, 희망, 그 하나의 인스턴스에서 할 수 있습니다. – BASILIO

+0

@BASILIO - exisitng API v3 메소드를 사용하여 한 인스턴스에서 수행 할 수 없습니다. 지정된 배열 내의 모든 오버레이를 (setMap (null)을 통해) 제거한 다음 오버레이 배열을 전달하는 함수를 만들 수 있습니다 – Adam