Показать сообщение отдельно
  #1 (permalink)  
Старый 03.02.2014, 16:56
Кандидат Javascript-наук
Отправить личное сообщение для Mateus Посмотреть профиль Найти все сообщения от Mateus
 
Регистрация: 06.12.2012
Сообщений: 100

Перетащить маркер google maps
Доброго времени суток.
Есть необходимость поставить лишь одну метку на карту с возможностью перетаскивания. Т.е. пользователь ставит местоположение кликом по карте, затем можно перетащить маркер на нужное место. После клика на карту в поле с id="map_coordinates" показываются координаты X и Y местоположения. Вопрос как поставить обработчик на "перетаскивание" (drag) маркера?
П.с. карта находится в id="map-canvas", координаты в id="map+coordinates". Заранее благодарен за помощь

Html:
<div class="map_field">
<div id="map_coordinates"></div>
   <div id="map-canvas"></div>
</div>



javascript:
function initialize() {
  var Riga = new google.maps.LatLng(56.9496487,24.1051864);
  var mapOptions = {
    zoom: 13,
    center: Riga,
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
marker =  new google.maps.Marker({});
	
  google.maps.event.addListener(map, "click", function(event) {
	deleteMarkers();
    addMarker(event.latLng);
	});

/// Здесь возникли проблемы
google.maps.event.addListener(marker, "drag", function(event) {
//	alert('drag');
		$('#map_coordinates').empty().append(location.e+' '+location.d);
});


}
var image = 'http://google-maps-icons.googlecode.com/files/beach-nudist.png';
// Add a marker to the map and push to the array.
function addMarker(location) {
  var marker = new google.maps.Marker({
    position: location,
	draggable:true,
	icon:image,
    map: map
  });  
  markers.push(marker);
	$('#map_coordinates').empty().append(location.e+' '+location.d);

}
// Deletes all markers in the array by removing references to them.
function deleteMarkers() {
  clearMarkers();
  markers = [];
}
// Sets the map on all markers in the array.
function setAllMap(map) {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(map);
  }
}


// Removes the markers from the map, but keeps them in the array.
function clearMarkers() {
  setAllMap(null);
}


// Shows any markers currently in the array.
function showMarkers() {
  setAllMap(map);
}

Последний раз редактировалось Mateus, 03.02.2014 в 17:07.
Ответить с цитированием