Coordinates  |  Maps JavaScript API  |  Google for Developers (original) (raw)

Skip to main content

Coordinates

LatLngclass

google.maps.LatLngclass

A LatLng is a point in geographical coordinates: latitude and longitude.

Although the default map projection associates longitude with the x-coordinate of the map, and latitude with the y-coordinate, the latitude coordinate is always written first, followed by the longitude.
Notice that you cannot modify the coordinates of a LatLng. If you want to compute another point, you have to create a new one.

Most methods that accept LatLng objects also accept a [LatLngLiteral](/maps/documentation/javascript/reference/coordinates#LatLngLiteral) object, so that the following are equivalent:

map.setCenter(new google.maps.LatLng(-34, 151));
map.setCenter({lat: -34, lng: 151});

The constructor also accepts [LatLngLiteral](/maps/documentation/javascript/reference/coordinates#LatLngLiteral) and LatLng objects. If a LatLng instance is passed to the constructor, a copy is created.

The possible calls to the constructor are below:

new google.maps.LatLng(-34, 151);
new google.maps.LatLng(-34, 151, true);
new google.maps.LatLng({lat: -34, lng: 151});
new google.maps.LatLng({lat: -34, lng: 151}, true);
new google.maps.LatLng(new google.maps.LatLng(-34, 151));
new google.maps.LatLng(new google.maps.LatLng(-34, 151), true);

Access by calling const {LatLng} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
LatLng LatLng(latOrLatLngOrLatLngLiteral[, lngOrNoClampNoWrap, noClampNoWrap]) Parameters: latOrLatLngOrLatLngLiteral: number|LatLngLiteral
Methods
equals equals(other) Parameters: other: LatLng Return Value: boolean Comparison function.
lat lat() Parameters: None Return Value: number Returns the latitude in degrees.
lng lng() Parameters: None Return Value: number Returns the longitude in degrees.
toJSON toJSON() Parameters: None Return Value: LatLngLiteral Converts to JSON representation. This function is intended to be used via JSON.stringify.
toString toString() Parameters: None Return Value: string Converts to string representation.
toUrlValue toUrlValue([precision]) Parameters: precision: number optional Return Value: string Returns a string of the form "lat,lng" for this LatLng. We round the lat/lng values to 6 decimal places by default.

LatLngLiteralinterface

google.maps.LatLngLiteralinterface

Object literals are accepted in place of LatLng objects, as a convenience, in many places. These are converted to LatLng objects when the Maps API encounters them.

Examples:

map.setCenter({lat: -34, lng: 151});
new google.maps.Marker({position: {lat: -34, lng: 151}, map: map});

LatLng object literals are not supported in the Geometry library.

Properties
lat Type: number Latitude in degrees. Values will be clamped to the range [-90, 90]. This means that if the value specified is less than -90, it will be set to -90. And if the value is greater than 90, it will be set to 90.
lng Type: number Longitude in degrees. Values outside the range [-180, 180] will be wrapped so that they fall within the range. For example, a value of -190 will be converted to 170. A value of 190 will be converted to -170. This reflects the fact that longitudes wrap around the globe.

LatLngBoundsclass

google.maps.LatLngBoundsclass

A [LatLngBounds](#LatLngBounds) instance represents a rectangle in geographical coordinates, including one that crosses the 180 degrees longitudinal meridian.

Access by calling const {LatLngBounds} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
LatLngBounds LatLngBounds([swOrLatLngBounds, ne]) Parameters: swOrLatLngBounds: LatLng|LatLngLiteral
Constants
MAX_BOUNDS LatLngBounds for the max bounds of the Earth. These bounds will encompass the entire globe.
Methods
contains contains(latLng) Parameters: latLng: LatLng|LatLngLiteral Return Value: boolean Returns true if the given lat/lng is in this bounds.
equals equals(other) Parameters: other: LatLngBounds|LatLngBoundsLiteral optional Return Value: boolean Returns true if this bounds approximately equals the given bounds.
extend extend(point) Parameters: point: LatLng|LatLngLiteral Return Value: LatLngBounds Extends this bounds to contain the given point.
getCenter getCenter() Parameters: None Return Value: LatLng Computes the center of this LatLngBounds
getNorthEast getNorthEast() Parameters: None Return Value: LatLng Returns the north-east corner of this bounds.
getSouthWest getSouthWest() Parameters: None Return Value: LatLng Returns the south-west corner of this bounds.
intersects intersects(other) Parameters: other: LatLngBounds|LatLngBoundsLiteral Return Value: boolean Returns true if this bounds shares any points with the other bounds.
isEmpty isEmpty() Parameters: None Return Value: boolean Returns if the bounds are empty.
toJSON toJSON() Parameters: None Return Value: LatLngBoundsLiteral Converts to JSON representation. This function is intended to be used via JSON.stringify.
toSpan toSpan() Parameters: None Return Value: LatLng Converts the given map bounds to a lat/lng span.
toString toString() Parameters: None Return Value: string Converts to string.
toUrlValue toUrlValue([precision]) Parameters: precision: number optional Return Value: string Returns a string of the form "lat_lo,lng_lo,lat_hi,lng_hi" for this bounds, where "lo" corresponds to the southwest corner of the bounding box, while "hi" corresponds to the northeast corner of that box.
union union(other) Parameters: other: LatLngBounds|LatLngBoundsLiteral Return Value: LatLngBounds Extends this bounds to contain the union of this and the given bounds.

LatLngBoundsLiteralinterface

google.maps.LatLngBoundsLiteralinterface

Object literals are accepted in place of LatLngBounds objects throughout the API. These are automatically converted to LatLngBounds objects. All south, west, north and east must be set, otherwise an exception is thrown.

Properties
east Type: number East longitude in degrees. Values outside the range [-180, 180] will be wrapped to the range [-180, 180). For example, a value of -190 will be converted to 170. A value of 190 will be converted to -170. This reflects the fact that longitudes wrap around the globe.
north Type: number North latitude in degrees. Values will be clamped to the range [-90, 90]. This means that if the value specified is less than -90, it will be set to -90. And if the value is greater than 90, it will be set to 90.
south Type: number South latitude in degrees. Values will be clamped to the range [-90, 90]. This means that if the value specified is less than -90, it will be set to -90. And if the value is greater than 90, it will be set to 90.
west Type: number West longitude in degrees. Values outside the range [-180, 180] will be wrapped to the range [-180, 180). For example, a value of -190 will be converted to 170. A value of 190 will be converted to -170. This reflects the fact that longitudes wrap around the globe.

LatLngAltitudeclass

google.maps.LatLngAltitudeclass

A LatLngAltitude is a 3D point in geographical coordinates: latitude, longitude, and altitude.

This class implements[LatLngAltitudeLiteral](/maps/documentation/javascript/reference/coordinates#LatLngAltitudeLiteral).

This class implements[LatLngLiteral](/maps/documentation/javascript/reference/coordinates#LatLngLiteral).

Access by calling const {LatLngAltitude} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
LatLngAltitude LatLngAltitude(value[, noClampNoWrap]) Parameters: value: LatLngAltitude|LatLngAltitudeLiteral
Properties
altitude Type: number Returns the altitude.
lat Type: number Returns the latitude.
lng Type: number Returns the longitude.
Methods
equals equals(other) Parameters: other: LatLngAltitude optional Another LatLngAltitude object. Return Value: boolean Whether the two objects are equal. Comparison function.
toJSON toJSON() Parameters: None Return Value: LatLngAltitudeLiteral A JSON representation of this object.

LatLngAltitudeLiteralinterface

google.maps.LatLngAltitudeLiteralinterface

Object literals are accepted in place of LatLngAltitude objects, as a convenience, in many places. These are converted to LatLngAltitude objects when the Maps API encounters them.

This interface extends[LatLngLiteral](/maps/documentation/javascript/reference/coordinates#LatLngLiteral).

Properties
altitude Type: number Default: 0 Distance (in meters) above the ground surface. Negative value means underneath the ground surface.
lat Type: number Latitude in degrees. Values will be clamped to the range [-90, 90]. This means that if the value specified is less than -90, it will be set to -90. And if the value is greater than 90, it will be set to 90.
lng Type: number Longitude in degrees. Values outside the range [-180, 180] will be wrapped so that they fall within the range. For example, a value of -190 will be converted to 170. A value of 190 will be converted to -170. This reflects the fact that longitudes wrap around the globe.

Pointclass

google.maps.Pointclass

Access by calling const {Point} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
Point Point(x, y) Parameters: x: number y: number A point on a two-dimensional plane.
Properties
x Type: number The X coordinate
y Type: number The Y coordinate
Methods
equals equals(other) Parameters: other: Point optional Return Value: boolean Compares two Points
toString toString() Parameters: None Return Value: string Returns a string representation of this Point.

Sizeclass

google.maps.Sizeclass

Access by calling const {Size} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
Size Size(width, height[, widthUnit, heightUnit]) Parameters: width: number height: number widthUnit: string optional heightUnit: string optional Two-dimensional size, where width is the distance on the x-axis, and height is the distance on the y-axis.
Properties
height Type: number The height along the y-axis, in pixels.
width Type: number The width along the x-axis, in pixels.
Methods
equals equals(other) Parameters: other: Size optional Return Value: boolean Compares two Sizes.
toString toString() Parameters: None Return Value: string Returns a string representation of this Size.

Paddinginterface

google.maps.Paddinginterface

Properties
bottom optional Type: number optional Padding for the bottom, in pixels.
left optional Type: number optional Padding for the left, in pixels.
right optional Type: number optional Padding for the right, in pixels.
top optional Type: number optional Padding for the top, in pixels.

CircleLiteralinterface

google.maps.CircleLiteralinterface

Object literal which represents a circle.

This interface extends[CircleOptions](/maps/documentation/javascript/reference/polygon#CircleOptions).

Properties
center Type: LatLng|LatLngLiteral The center of the Circle.
radius Type: number The radius in meters on the Earth's surface.
Inherited: clickable,draggable,editable,fillColor,fillOpacity,map,strokeColor,strokeOpacity,strokePosition,strokeWeight,visible,zIndex

Orientation3Dclass

google.maps.Orientation3Dclass

A Orientation3D is a three-dimensional vector used for standard mathematical rotation transformations along heading, tilt, and roll.

This class implements[Orientation3DLiteral](/maps/documentation/javascript/reference/coordinates#Orientation3DLiteral).

Access by calling const {Orientation3D} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
Orientation3D Orientation3D(value) Parameters: value: Orientation3D|Orientation3DLiteral The initializing value.
Properties
heading Type: number Default: 0 Rotation about the z-axis (normal to the Earth's surface). A value of 0 (the default) equals North. A positive rotation is clockwise around the z-axis and specified in degrees from 0 to 360. Values above or below this range will be wrapped so that they fall within the range. For example, a value of -190 will be converted to 170. A value of 530 will be converted to 170 as well.
roll Type: number Default: 0 Rotation about the y-axis. A positive rotation is clockwise around the y-axis and specified in degrees from 0 to 360. Values above or below this range will be wrapped so that they fall within the range. For example, a value of -190 will be converted to 170. A value of 530 will be converted to 170 as well.
tilt Type: number Default: 0 Rotation about the x-axis. A positive rotation is clockwise around the x-axis and specified in degrees from 0 to 360. Values above or below this range will be wrapped so that they fall within the range. For example, a value of -190 will be converted to 170. A value of 530 will be converted to 170 as well.
Methods
equals equals(other) Parameters: other: Orientation3D|Orientation3DLiteral optional Another Orientation3D object. Return Value: boolean Whether the two objects are equal. Comparison function.
toJSON toJSON() Parameters: None Return Value: Orientation3DLiteral Converts to JSON representation. This function is intended to be used via JSON.stringify.

Orientation3DLiteralinterface

google.maps.Orientation3DLiteralinterface

Object literals are accepted in place of Orientation3D objects, as a convenience, in many places. These are converted to Orientation3D objects when the Maps API encounters them.

Properties
heading optional Type: number optional Rotation about the z-axis (normal to the Earth's surface). A value of 0 (the default) equals North. A positive rotation is clockwise around the z-axis and specified in degrees from 0 to 360.
roll optional Type: number optional Rotation about the y-axis. A positive rotation is clockwise around the y-axis and specified in degrees from 0 to 360.
tilt optional Type: number optional Rotation about the x-axis. A positive rotation is clockwise around the x-axis and specified in degrees from 0 to 360.

Vector3Dclass

google.maps.Vector3Dclass

A Vector3D is a three-dimensional vector used for standard mathematical operations such as scaling the bounds of three-dimensional object along local x-, y-, and z-axes.

This class implements[Vector3DLiteral](/maps/documentation/javascript/reference/coordinates#Vector3DLiteral).

Access by calling const {Vector3D} = await google.maps.importLibrary("core").
See Libraries in the Maps JavaScript API.

Constructor
Vector3D Vector3D(value) Parameters: value: Vector3D|Vector3DLiteral The initializing value.
Properties
x Type: number X-component of the three-dimensional vector.
y Type: number Y-component of the three-dimensional vector.
z Type: number Z-component of the three-dimensional vector.
Methods
equals equals(other) Parameters: other: Vector3D|Vector3DLiteral optional Another Vector3D or Vector3DLiteral object. Return Value: boolean Comparison function.
toJSON toJSON() Parameters: None Return Value: Vector3DLiteral Converts to JSON representation. This function is intended to be used via JSON.stringify.

Vector3DLiteralinterface

google.maps.Vector3DLiteralinterface

Object literals are accepted in place of Vector3D objects, as a convenience, in many places. These are converted to Vector3D objects when the Maps API encounters them.

Properties
x Type: number X-component of the three-dimensional vector.
y Type: number Y-component of the three-dimensional vector.
z Type: number Z-component of the three-dimensional vector.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-11 UTC.