Выберите ссылку или флажок для отображения маркеров категории

Я немного застрял при попытке сказать Javascript делать то, что я хочу.

У меня есть пример картыhttp://calwestcultural.com/sgs/backup/example-map.html и у меня есть категории в моем меню Spry слева. Мне бы хотелось, чтобы эти категории были кликабельными и отображали только маркеры для этой категории.

Я хотел бы: 1. Скрыть маркеры под нагрузкой 2. Когда вы нажимаете на категорию (например, «ешьте», «банки» и т. Д.), Я хотел бы ТОЛЬКО показывать маркеры в этой категории

* если создание флажка в меню облегчает эту задачу, я готов это сделать. Я просто завис на этой части моей карты и мне нужно двигаться дальше.

Может ли кто-нибудь помочь? Что-то подсказывает мне, что это легко исправить.

Ответы на вопрос(2)

создайте массив для каждой категории маркеров и используйте их для хранения каждого набора маркеров. Затем сделайте следующее:

Чтобы скрыть маркеры при загрузке, создайте маркеры, но оставьте для свойства карты маркеров значениеnull:

var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
    position: myLatlng,
    map: null,
    title:"Hello World!"
});

Чтобы отобразить только маркеры в данной категории, прослушайте событие, которое должно вызвать отображение маркеров, а затем установите маркеры & apos; свойство карты:

for ( var i = 0; i < markerCategoryArray.length; i++ ) {
    markerCategoryArray[i].setMap( map );
}
 MizAkita05 июн. 2012 г., 20:07
Хммм ... я попробовал первый вариант, но он убрал все маркеры, даже когда я нажал на них в моем меню (просто отображает информационное окно). На данный момент у меня нет категорий, так как я зациклен на том, как создать их с помощью карты и функциональности, которые есть у меня сейчас.see my map here

этот ответ без нескольких массивов категорий. Тем более,Google Maps v3 пример связан там показали следующее.

var gmarkers = [];
var marker = new google.maps.Marker({
    position: latlng,
    icon: gicons[category],
    shadow: iconShadow,
    map: map,
    title: name,
    zIndex: Math.round(latlng.lat()*-100000)<<5
});
// === Store the category and name info as a marker properties ===
marker.mycategory = category;                                 
marker.myname = name;
gmarkers.push(marker);

Затем просто отфильтруйте по категории на маркере, как показано в примере.

// == shows all markers of a particular category, and ensures the checkbox is checked ==
function show(category) {
   for (var i=0; i<gmarkers.length; i++) {
      if (gmarkers[i].mycategory == category) {
        gmarkers[i].setVisible(true);
      }
   }
   // == check the checkbox ==
   document.getElementById(category+"box").checked = true;
}

// == hides all markers of a particular category, and ensures the checkbox is cleared ==
function hide(category) {
   for (var i=0; i<gmarkers.length; i++) {
      if (gmarkers[i].mycategory == category) {
        gmarkers[i].setVisible(false);
      }
   }
   // == clear the checkbox ==
   document.getElementById(category+"box").checked = false;
   // == close the info window, in case its open on a marker that we just hid
   infowindow.close();
}

Ваш ответ на вопрос