kkreft
2/5/2016 - 2:03 PM

js Google Map geocoding and getting marker place

<script>
	var geocoder;
	var map;
	var markersArray = [];

	function initialize() {
	  geocoder = new google.maps.Geocoder();
	  var latlng = new google.maps.LatLng(51.9189046, 19.1343786);
	  var mapOptions = {
	    zoom: 6,
	    center: latlng
	  }
	  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

	  google.maps.event.addListener(map, 'click', function(e) {
	    placeMarker(e.latLng, map);
	  });

	}

	function codeAddress() {
		
		while(markersArray.length) { markersArray.pop().setMap(null); }

		var address = document.getElementById('jform_address').value;
		geocoder.geocode( { 'address': address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
		  map.setCenter(results[0].geometry.location);
		  marker = new google.maps.Marker({
		      map: map,
		      position: results[0].geometry.location
		  });

		  markersArray.push(marker);
			
		  document.getElementById('jform_g_lat').value = results[0].geometry.location.lat();
		  document.getElementById('jform_g_long').value = results[0].geometry.location.lng();

		} else {
		  alert('Pobranie adresu nie powiodło się, status błędu: ' + status);
		}
		});
	}

	function placeMarker(position, map) {
		while(markersArray.length) { markersArray.pop().setMap(null); }
		
		marker = new google.maps.Marker({
			position: position,
			map: map
		});

	    markersArray.push(marker);


		document.getElementById('jform_g_lat').value = position.lat();
		document.getElementById('jform_g_long').value = position.lng();

		map.panTo(position);
	}

	google.maps.event.addDomListener(window, 'load', initialize);
</script>