Latitudes and Longitudes
Now that we have a map, we need a way to refer to locations on the map. The GLatLng
object provides such a mechanism within the Google Maps API. You construct a GLatLng
object, passing its parameters in the order { latitude, longitude } as is customary in cartography:
var myGeographicCoordinates = new GLatLng(myLatitude, myLongitude)
Note: the process of turning an address into a geographic point is known as geocoding and is discussed in detail in the Google Maps API Services section.
Just as it is useful to easily refer to a geographic point, it is also useful to define the geographic bounds of an object. For example, a map displays a current "window" of the entire world within what is known as a viewport. This viewport can be defined by the rectangular points at its corners. The GLatLngBounds
object provides this functionality, defining a rectangular region using two GLatLng
objects representing the southwest and northeast corners of the bounding box, respectively.
GLatLng
objects have many uses within the Google Maps API. The GMarker
object takes a GLatLng
in its constructor, for example, and places a marker overlay on the map at the given geographic location.
The following example uses getBounds()
to return the current viewport, and then randomly places 10 markers on the map within those bounds:
function initialize() {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(new GMarker(point));
}
}
View example (map-markers.html)
Note: more information on GMarker
objects is within the Overlays section