• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 635
  • Last Modified:

Configuring a Google Map

I'm trying to learn how to configure a Google Map API V3, and having some challenges.  I would like to be able to specify coordinates for the initial view of the map, which differ from coordinates of the marker.  I'd like the zoom control to zoom in on the marker, not on the initial coordinates of the map.  Can you edit the following code to achieve that?

<script>
jQuery(document).ready(function () {
	initmap("20.915927","-156.282931","Maui Tradewinds","4320 Une Place, Haiku","Hawaii")
	})
	function initmap(lat,lng,hname,add,city) {
		var secheltLoc = new google.maps.LatLng(lat,lng);
		var myMapOptions = {
			 zoom: 14
			,center: secheltLoc
			,mapTypeId: google.maps.MapTypeId.ROADMAP,disableDefaultUI: true,
			draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true
		};
		var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);


	var contentString =hname+"<br>"	+add+"<br>"+city //Style here as you like
  var infowindow = new google.maps.InfoWindow({
      content: contentString
  });

  var marker = new google.maps.Marker({
     position: new google.maps.LatLng(lat,lng),
      map: theMap
  });
// Show the popup on load.
  google.maps.event.addListenerOnce(theMap, 'idle', function() {
   infowindow.open(theMap,marker);
});
  google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(theMap,marker);
  });
	}
	</script>

Open in new window

0
ddantes
Asked:
ddantes
  • 2
  • 2
1 Solution
 
Tom BeckCommented:
You can change the initial map center after it's created by using panBy(). Add this line near the bottom of your initmap function to push the marker and infowindow down 100 pixels.

theMap.panBy(0, -100);

Then you can add an event listener to re-center the map to the marker location on zoom_changed. Of course you will have to enable the zoom control.

google.maps.event.addListener(theMap, 'zoom_changed', function() {
    theMap.setCenter(secheltLoc);
  });
0
 
ddantesAuthor Commented:
Thank you.  I'll try this, but I was hoping the initial map center could be  set with a different initial  (lat, long) instead of panning by pixels.  If I use pixels, won't the result vary with the screen size and resolution of the user's device?
0
 
Tom BeckCommented:
The "center" property controls where the center of the map will be. Set it to something other than the value passed to the function for the marker. Or, just set the latitude to something else.

var myMapOptions = {
                   zoom: 14
                  ,center: new google.maps.LatLng("20.9165",lng)
                  ,mapTypeId: google.maps.MapTypeId.ROADMAP,disableDefaultUI: true,
                  draggable: false, zoomControl: true, scrollwheel: false, disableDoubleClickZoom: true
            };
0
 
ddantesAuthor Commented:
This is exactly what I hoped for.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now