그래서지도에 두 개의 다각형 층이 있습니다. 이 다각형은 줌 레벨에 따라 다릅니다.Google지도 api 폴리곤 리스너 토글
첫 번째 레벨의 폴리곤을 숨기거나 청취자를 제거하여 투명하게 만들고 싶을 때 축소하면 레벨 2의 폴리곤을 숨기고 첫 번째 레벨의 폴리곤을 표시해야합니다.
현재 나의 전략은 폴리곤을 처음에는 투명하게 만드는 것이며, 리스너는 필요할 때 불투명하게 만듭니다. 폴리곤 토글을 수행하기 위해 확대/축소가 변경되면 리스너를 추가하고 제거합니다.
그래서 나는 level1 폴리곤 배열과 level2 폴리곤 배열을 가지고 있지만 그것들을 토글하는 것처럼 보이지 않습니다.
어떻게 작동하지 않습니까? addListener는 removeListener와 정반대로 수행하면 안됩니까?
function zoomedout(map) {
$.each(level2Listeners, function(k,v) {
google.maps.event.removeListener(v);
});
$.each(level1Listeners, function(k,v) {
google.maps.event.addListener(v);
});
}
은 토글을 달성하기 위해 다른 더 합리적인 전략이 있습니까?
. 청취자를 추가하고 제거하는 대신 영구적으로 연결된 'zoom_changed'리스너 하나를 사용하는 것이 좋습니다.이 리스너는 새로운 줌 레벨에 따라 레이어를 표시하거나 숨 깁니다. 이걸 마음 속으로 가져 가면 코드는 사소한 것이어야합니다. –