2012-06-11 1 views
0

내가 마커 범주 및 클릭에 표시 마커를 만들려고하고 있어요 ...

예를 들어, "은행", "관심의 장소"를 "먹어"를 클릭 마커 카테고리를 생성 및 클릭에 마커를 표시 그 범주에있는 마커 만 생산할 것입니다. 당신은 그것을 여기 HERE

을 살고 볼 수있는 것은 코드입니다 : 현재

//<![CDATA[ 

//<![CDATA[ 

var map = null; 

var gmarkers = []; 

var gicons = []; 

var icon = []; 

function initialize() { 

var myOptions = { 

zoom: 13, 

center: new google.maps.LatLng(37.979183,-121.302381), 

mapTypeControl: true, 

mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 

navigationControl: true, 

mapTypeId: google.maps.MapTypeId.ROADMAP 

    } 

map = new google.maps.Map(document.getElementById("map_canvas"), 

          myOptions); 





google.maps.event.addListener(map, 'click', function() { 

infowindow.close(); 

}); 



// Add markers to the map 

// Set up three markers with info windows 







///////////////////////// EATS ////////////////////////////////////////////// 



var point = new google.maps.LatLng(37.988012,-121.311901); 

var image = 'icons/orangepointer.png'; 

var marker = createMarker(point,'<div style="width:205"><center><img src="icons/tigeryogurt.jpg" /></center><br><b>Tiger Yogurt</b><small><br>4343 Pacific Avenue<br>209.952.6042<br><br><a href="http://maps.google.com/maps?saddr=&daddr=' + point.toUrlValue() + '" target ="_blank">Get Directions<\/a></small><\/div>', image); 

// this will be gmarkers[0] 



var point = new google.maps.LatLng(37.987054,-121.311655); 

var image = 'icons/orangepointer.png'; 

var marker = createMarker(point,'<div style="width:205"><center><img src="icons/mwbakery.jpg" /></center><br><b>M&W Bakery<br>Cakes & Sandwiches</b><small><br>4343 Pacific Avenue<br>209.473.3828<br><br>On the web visit:<br><a href="http://www.mandwdutchamericanbakery.com" target ="_blank">MandWDutchAmericanBakery.com<\/a><br><br><a href="http://maps.google.com/maps?saddr=&daddr=' + point.toUrlValue() + '" target ="_blank">Get Directions<\/a></small><\/div>', image); 

// this will be gmarkers[1] 

, 모든 마커 표시됩니다. 마커를 쉽게 표시 할 수는 없지만 ... 클릭 만 표시하려면 카테고리 표시 및 개별 목록 만 표시하려고합니다.

는 마커 기능을 만듭니다

} 

var infowindow = new google.maps.InfoWindow(
{ 
size: new google.maps.Size(150,50) 
}); 

function triggerClick(i) { 
    google.maps.event.trigger(gmarkers[i],"click") 
    }; 

function createMarker(latlng, html, img) { 
var contentString = html; 
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    icon: img, 
    zIndex: Math.round(latlng.lat()*-100000)<<5 
    }); 

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.setContent(contentString); 
    infowindow.open(map,marker); 
}); 
gmarkers.push(marker); 
} 
+0

나는 당신이 원하는 것을 이해하는 데 어려움을 겪고있다. (특히 당신의 게시물에는 의문의 여지가 없다.) 왼쪽 그룹에있는 마커 만 표시하려고합니까? –

+0

createMarker 함수는 어떻게 생겼습니까? – duncan

+0

나는 "먹기", "쇼핑", "소매점"카테고리를 만들고 그 범주가 클릭되거나 해당 범주 내의 개별 링크 만 표시되도록하려고합니다. (위의 코드를 편집하고 createMarker 코드를 추가했습니다.) 여기서 도움이 되었기 때문에 도움을 얻을 수 있습니다. – MizAkita

답변

0

내가 창조 가진 setMarker (널)에 각 마커, 배열에 마커를 할당하는 것입니다 할 수있는 간단한 방법을 생각했다. 각 범주에 대해 별도의 배열을 사용하거나 각 범주 속성이있는 객체의 단일 배열을 사용합니다. 그런 다음 사용자가 범주를 클릭하면 적합한 배열을 반복하고 각 마커에 대해 setMarker (map)를 반복합니다.