2012-11-20 5 views
0

여기에서 사용자의 환상적인 도움을받은 후 내 웹 사이트의 모든지도 아이콘을 숨길 수있는 버튼이 있습니다. 그러나 나는 그들의 범주에 따라 마커를 숨길 수 있어야합니다.마커 카테고리 숨기기/표시 Google지도 API

이 코드는 아래

function createMarker(place) { 
    var iconType = {}; 
    iconType['atm'] = "http://maps.google.com/mapfiles/ms/micons/dollar.png"; 
    iconType['bus_station'] = "http://maps.google.com/mapfiles/ms/micons/bus.png"; 
    //iconType['restaurant'] = "http://maps.google.com/mapfiles/ms/micons/restaurant.png"; 
    iconType['parking'] = "http://maps.google.com/mapfiles/ms/micons/parkinglot.png"; 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map : map, 
     icon : iconType[place.types[0]], 
     position : place.geometry.location, 
     category : category 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(place.name); 
     infowindow.open(map, this); 
    }); 

    return marker; 
    } 

내가 범주 속성이 이제 구글의 응답, 지금이 결과를 chosing되어이 문제를 채워야한다고 생각 마커 배열에 구글의 결과를 전달 (A 특정 카테고리) 마커를 숨기기 위해 함수를 호출하면 카테고리에 대한 배열 데이터에 액세스하는 방법을 알지 못하지만 여러 스레드를 여기에서 검색했지만 코드는 광산과 크게 다릅니다. 마커를 숨기는 내 코드는 여기에 있습니다.

function onRemoveBtn_Clicked() { 
    var i; 
    for (i = 0; i < markers.length; i++) { 
     markers[i].setMap(null); 
    } 
    } 

도움이된다면 크게 도움이됩니다. 아, 결과를 얻는 데 사용 된 코드가 있습니다.

service = new google.maps.places.PlacesService(map); 
service.nearbySearch(request, callback); 
    function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     var place = results[i]; 
     markers.push(createMarker(results[i])); 
     } 
    } 
    } 

답변

1

이 같은 마커의 범주를 얻을 수 있습니다 :

function onRemoveBtn_Clicked() { 
    var i; 
    for (i = 0; i < markers.length; i++) { 
     if (markers[i].get("category") != selected_category) { 
     markers[i].setMap(null); 
     } 
    } 
    } 
관련 문제