@types/googlemaps
Version:
TypeScript definitions for Google Maps JavaScript API
374 lines (328 loc) • 17.9 kB
TypeScript
declare namespace google.maps {
/**
* A LatLng is a point in geographical coordinates: latitude and longitude.
*
* * Latitude ranges between -90 and 90 degrees, inclusive. Values above or below this range 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.
* * Longitude ranges between -180 and 180 degrees, inclusive. 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 190 will be
* converted to -170. This reflects the fact that longitudes wrap around the globe.
*
* 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.
* @example <caption>Most methods that accept LatLng objects also accept a {@link LatLngLiteral} object, so that the following are equivalent:</caption>
* map.setCenter(new google.maps.LatLng(-34, 151));
* map.setCenter({lat: -34, lng: 151});
* @example <caption>The constructor also accepts literal objects, and converts them to instances of LatLng:</caption>
* myLatLng = new google.maps.LatLng({lat: -34, lng: 151});
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng Maps JavaScript API}
*/
class LatLng {
/**
* Creates a {@link LatLng} object representing a geographic point.
* Note the ordering of latitude and longitude.
* @param lat Latitude is specified in degrees within the range [-90, 90].
* @param lng Longitude is specified in degrees within the range [-180, 180].
* @param noWrap Set noWrap to true to enable values outside of this range.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.constructor Maps JavaScript API}
*/
constructor(lat: number, lng: number, noWrap?: boolean);
/**
* Creates a {@link LatLng} object representing a geographic point.
* @param literal Object literal.
* @param noWrap Set noWrap to true to enable values outside of this range.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.constructor Maps JavaScript API}
*/
constructor(literal: LatLngLiteral, noWrap?: boolean);
/**
* Comparison function.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.equals Maps JavaScript API}
*/
equals(other: LatLng): boolean;
/**
* Returns the latitude in degrees.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.lat Maps JavaScript API}
*/
lat(): number;
/**
* Returns the longitude in degrees.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.lng Maps JavaScript API}
*/
lng(): number;
/**
* Converts to JSON representation. This function is intended to be used via {@link JSON.stringify}.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.toJSON Maps JavaScript API}
*/
toJSON(): LatLngLiteral;
/**
* Converts to string representation.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.toString Maps JavaScript API}
*/
toString(): string;
/**
* Returns a string of the form "lat,lng" for this LatLng. We round the lat/lng values to 6 decimal places by
* default.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLng.toUrlValue Maps JavaScript API}
*/
toUrlValue(precision?: number): string;
}
/**
* Object literals are accepted in place of {@link LatLng} objects, as a convenience, in many places. These are
* converted to {@link LatLng} objects when the Maps API encounters them.
*
* **LatLng object literals are not supported in the Geometry library.**
* @example
* map.setCenter({lat: -34, lng: 151});
* new google.maps.Marker({position: {lat: -34, lng: 151}, map: map});
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngLiteral Maps JavaScript API}
*/
interface LatLngLiteral {
/**
* 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngLiteral.lat Maps JavaScript API}
*/
lat: 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngLiteral.lng Maps JavaScript API}
*/
lng: number;
}
/**
* @see {@link LatLngLiteral}.
*/
interface ReadonlyLatLngLiteral {
/**
* @see {@link LatLngLiteral#lat}
*/
readonly lat: number;
/**
* @see {@link LatLngLiteral#lng}
*/
readonly lng: number;
}
/**
* A LatLngBounds instance represents a rectangle in geographical coordinates, including one that crosses the 180
* degrees longitudinal meridian.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds Maps JavaScript API}
*/
class LatLngBounds {
/**
* Constructs a rectangle from the points at its south-west and north-east corners.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.constructor Maps JavaScript API}
*/
constructor(sw?: LatLng | LatLngLiteral, ne?: LatLng | LatLngLiteral);
/**
* Returns true if the given lat/lng is in this bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.contains Maps JavaScript API}
*/
contains(latLng: LatLng | LatLngLiteral): boolean;
/**
* Returns true if this bounds approximately equals the given bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.equals Maps JavaScript API}
*/
equals(other: LatLngBounds | LatLngBoundsLiteral): boolean;
/**
* Extends this bounds to contain the given point.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.extend Maps JavaScript API}
*/
extend(point: LatLng | LatLngLiteral): LatLngBounds;
/**
* Computes the center of this LatLngBounds
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.getCenter Maps JavaScript API}
*/
getCenter(): LatLng;
/**
* Returns the north-east corner of this bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.getNorthEast Maps JavaScript API}
*/
getNorthEast(): LatLng;
/**
* Returns the south-west corner of this bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.getSouthWest Maps JavaScript API}
*/
getSouthWest(): LatLng;
/**
* Returns true if this bounds shares any points with the other bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.intersects Maps JavaScript API}
*/
intersects(other: LatLngBounds | LatLngBoundsLiteral): boolean;
/**
* Returns if the bounds are empty.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.isEmpty Maps JavaScript API}
*/
isEmpty(): boolean;
/**
* Converts to JSON representation. This function is intended to be used via {@link JSON.stringify}.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.toJSON Maps JavaScript API}
*/
toJSON(): LatLngBoundsLiteral;
/**
* Converts the given map bounds to a lat/lng span.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.toSpan Maps JavaScript API}
*/
toSpan(): LatLng;
/**
* Converts to string.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.toString Maps JavaScript API}
*/
toString(): 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.toUrlValue Maps JavaScript API}
*/
toUrlValue(precision?: number): string;
/**
* Extends this bounds to contain the union of this and the given bounds.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBounds.union Maps JavaScript API}
*/
union(other: LatLngBounds | LatLngBoundsLiteral): LatLngBounds;
}
/**
* Object literals are accepted in place of {@link LatLngBounds} objects throughout the API. These are automatically
* converted to {@link LatLngBounds} objects. All {@link LatLngBoundsLiteral#south south},
* {@link LatLngBoundsLiteral#west west}, {@link LatLngBoundsLiteral#north north} and
* {@link LatLngBoundsLiteral#east east} must be set, otherwise an exception is thrown.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBoundsLiteral Maps JavaScript API}
*/
interface LatLngBoundsLiteral {
/**
* 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBoundsLiteral.east Maps JavaScript API}
*/
east: 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBoundsLiteral.north Maps JavaScript API}
*/
north: 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBoundsLiteral.south Maps JavaScript API}
*/
south: 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.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#LatLngBoundsLiteral.west Maps JavaScript API}
*/
west: number;
}
/**
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point Maps JavaScript API}
*/
class Point {
/**
* A point on a two-dimensional plane.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point.constructor Maps JavaScript API}
*/
constructor(x: number, y: number);
/**
* The X coordinate
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point.x Maps JavaScript API}
*/
x: number;
/**
* The Y coordinate
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point.y Maps JavaScript API}
*/
y: number;
/**
* Compares two Points
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point.equals Maps JavaScript API}
*/
equals(other: Point): boolean;
/**
* Returns a string representation of this Point.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Point.toString Maps JavaScript API}
*/
toString(): string;
}
/**
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size Maps JavaScript API}
*/
class Size {
/**
* Two-dimensional size.
* @param width the distance on the x-axis
* @param height the distance on the y-axis
* @param widthUnit
* @param heightUnit
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size.constructor Maps JavaScript API}
*/
constructor(width: number, height: number, widthUnit?: string, heightUnit?: string);
/**
* The height along the y-axis, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size.height Maps JavaScript API}
*/
height: number;
/**
* The width along the x-axis, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size.width Maps JavaScript API}
*/
width: number;
/**
* Compares two Sizes.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size.equals Maps JavaScript API}
*/
equals(other: Size): boolean;
/**
* Returns a string representation of this Size.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Size.toString Maps JavaScript API}
*/
toString(): string;
}
/**
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Padding Maps JavaScript API}
*/
interface Padding {
/**
* Padding for the bottom, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Padding.bottom Maps JavaScript API}
*/
bottom?: number;
/**
* Padding for the left, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Padding.left Maps JavaScript API}
*/
left?: number;
/**
* Padding for the right, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Padding.right Maps JavaScript API}
*/
right?: number;
/**
* Padding for the top, in pixels.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#Padding.top Maps JavaScript API}
*/
top?: number;
}
/**
* Object literal which represents a circle.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#CircleLiteral Maps JavaScript API}
*/
interface CircleLiteral extends CircleOptions {
/**
* The center of the Circle.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#CircleLiteral.center Maps JavaScript API}
*/
center?: LatLng | LatLngLiteral;
/**
* The radius in meters on the Earth's surface.
* @see {@link https://developers.google.com/maps/documentation/javascript/reference/coordinates#CircleLiteral.radius Maps JavaScript API}
*/
radius?: number;
}
}