nixischev
@nixischev
PHP backend developer

Google Maps — метки и информационные окна к ним

Доброго времени суток!
Есть таблица с координатами, после получения этих координат нужно добавить маркеры на карту Google Maps и к каждому маркеру прикрепить определенное инфоокно, подскажите, как это сделать? Вот мои наработки:
var gmap = {
	map : [],
	markers : [],

	init : function(){
		var mapOptions = {
			zoom: 15,
		};
		map = new google.maps.Map(document.getElementById('map-canvas'),
				mapOptions);

		google.maps.event.addListener(map, 'click', function(coordinates) {
			var coords = {
				lat : coordinates.latLng.d,
				lng : coordinates.latLng.e,
			};
			gmap.addMarker(map,coords);
		});

		gmap.geo();
	},

	loadMarkers : function(data){
		/* как сделать вывод маркеров и инфоокон? */
	}

	addMarker : function(mapObj,coords){
		
		var marker = new google.maps.Marker({
	    	position: coords,
	    	map: mapObj,
	    	icon: 'img/marker-32x32.png',
	    	animation: google.maps.Animation.DROP,
		});
		
		listener.tmp.marker = marker; //удалит маркер, если модальное окно будет закрыто
		dialog.addPlace(marker);
	},

	deleteMarker : function(marker){
		marker.setMap(null);
	},

	geo : function(){
		// Try HTML5 geolocation
		if(navigator.geolocation) {
			navigator.geolocation.getCurrentPosition(function(position) {
				var pos = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

				var infowindow = new google.maps.InfoWindow({
					map: map,
					position: pos,
					content: 'Location found using HTML5.'
				});
				map.setCenter(pos);
			}, function() {
				gmap.geoError(true);
			});
		} else {
			// Browser doesn't support Geolocation
			gmap.geoError(false);
		}
	},

	geoError : function(errorFlag) {
		if (errorFlag) {
			var content = 'Error: The Geolocation service failed.';
		} else {
			var content = 'Error: Your browser doesn\'t support geolocation.';
		}

		var options = {
			map: map,
			position: new google.maps.LatLng(-34.397, 150.644),
			content: content
		};

		var infowindow = new google.maps.InfoWindow(options);
		map.setCenter(options.position);
	},
};



google.maps.event.addDomListener(window, 'load', gmap.init);


функционал должен быть прописан или в функции loadMarkers или в html-коде

pS: знаю, что прогнать нужно через foreach, вопрос в том, что прогнать, чтобы получить маркеры на карте и инфоокна к ним (при клике на маркет)
  • Вопрос задан
  • 3803 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы