Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2012, 12:20   #1
veter48
Форумчанин
 
Регистрация: 26.07.2010
Сообщений: 150
По умолчанию Google maps api балун.

Здравствуйте, сделал не большую карту на Google maps api, надо сделать так чтоб одновременно мог быть открыт только один балун.

Функция инициализации:
Код:
function initialize() {
			var myLatlng = new google.maps.LatLng(56.32,24.004);
			var myOptions = {
			  zoom: 7,
			  center: myLatlng,
			  mapTypeId: google.maps.MapTypeId.ROADMAP
			}
			
		map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
			
		$('#markerTypes input[type="checkbox"]').bind('click', function () {
		 
		var markersType = $(this).val();
		 
		if($(this).attr("checked")) {
		 
		if(!gmarkers[markersType]) {
		 
		gmarkers[markersType] = [];
		 
		$.getJSON("get.php", {markersType:markersType}, function(data){
		 
		setMarkers(data, markersType);				
		 
		});
		 
		}
		else {
		show(markersType);
		}
		 
		}
		else {
		hide(markersType);

		}
		});	
}


Функция установки маркеров:
Код:
function setMarkers(data, category) {
	var infoWindow = new google.maps.InfoWindow;	 
	var baseIcon = customIcons[category];	
	var marker_point = new Array();
              var html = new Array();

	for(var i = 0; i < data.markers.length; i++) {	
    	marker_point[i] = new google.maps.LatLng(data.markers[i].lat, data.markers[i].lon);	
	html[i] = '<div style="font-weight:bold; background-color:#CCFFCC; line-height:30px">'+data.markers[i].mname+'</div>' +data.markers[i].desc +'<br />'+data.markers[i].novads + ' novads, '+data.markers[i].apdzvieta+', '+data.markers[i].address;
	createMarker(marker_point[i], html[i], baseIcon, infoWindow, category);
	}
}

function createMarker(point, html, icon, infoWindow, category) {
	 var marker = new google.maps.Marker({
            map: map,
            position: point,
             icon: icon.icon,
            shadow: icon.shadow           
          });

  marker.mycategory = category; 
  
  google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
      });
  gmarkers.push(marker);
  return marker;
}
Показать маркеры одной категории:
Код:
function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(true);
          }
        }
        document.getElementById(category+"box").checked = true;
      }
Скрыть маркеры одной категории:
Код:
function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(false);
          }
        }
        document.getElementById(category+"box").checked = false;
        infowindow.close();
      }
veter48 вне форума Ответить с цитированием
Старый 02.07.2012, 11:57   #2
veter48
Форумчанин
 
Регистрация: 26.07.2010
Сообщений: 150
По умолчанию

Почему если я после «$('#markerTypes input[type="checkbox"]').bind('click', function () {
» ставлю infoWindow.close(); то маркеры вообще не появляются?

Код:
$('#markerTypes input[type="checkbox"]').bind('click', function () {
		              infoWindow.close();
			var markersType = $(this).val();
			 
			if($(this).attr("checked")) {
			 
				if(!gmarkers[markersType]) {
				 
				gmarkers[markersType] = [];
				
				$.getJSON("upload.php", {markersType:markersType}, function(data){
				 
				setMarkers(data, markersType);				
				 
				});
				 
				}
				else {
				show(markersType);
				}
			 
			}
			else {
			hide(markersType);

			}
		});
veter48 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google maps API veter48 JavaScript, Ajax 1 27.06.2012 11:03
Google Maps API на С++, С# или дельфи Kara1989 Фриланс 0 01.04.2012 13:57
Google maps Samir_ Помощь студентам 10 13.03.2012 21:22
ya maps/google maps djetx Работа с сетью в Delphi 1 10.04.2011 21:19
Google Maps API RMEN JavaScript, Ajax 0 24.05.2010 16:40