encoding namespace
google.maps.geometry
. encoding
namespace
Utilities for polyline encoding and decoding.
const { encoding } = await google . maps . importLibrary ( "geometry" );
Static Methods
encodePath(path)
Parameters:
-
path:Array < LatLng | LatLngLiteral >| MVCArray < LatLng | LatLngLiteral >
Return Value:
string
Encodes a sequence of LatLngs into an encoded path string.
spherical namespace
google.maps.geometry
. spherical
namespace
Utility functions for computing geodesic angles, distances and areas. The default radius is Earth's radius of 6378137 meters.
const { spherical } = await google . maps . importLibrary ( "geometry" );
Static Methods
computeArea(path[, radiusOfSphere])
Parameters:
-
path:Array < LatLng | LatLngLiteral >| MVCArray < LatLng | LatLngLiteral >| Circle | CircleLiteral | LatLngBounds | LatLngBoundsLiteral -
radiusOfSphere:number optional
Return Value:
number
Returns the unsigned area of a closed path, in the range [0, 2×pi×radius²]. The computed area uses the same units as the radius. The
radiusOfSphere
defaults to the Earth's radius in meters, in which case the area is in square meters. Passing a Circle
requires the radius
to be set to a non-negative value. Additionally, the Circle must not cover more than 100% of the sphere. And when passing a LatLngBounds
, the southern LatLng cannot be more north than the northern LatLng.computeDistanceBetween(from, to[, radius])
Parameters:
-
from:LatLng | LatLngLiteral -
to:LatLng | LatLngLiteral -
radius:number optional
Return Value:
number
Returns the distance, in meters, between two LatLngs. You can optionally specify a custom radius. The radius defaults to the radius of the Earth.
computeHeading(from, to)
Parameters:
-
from:LatLng | LatLngLiteral -
to:LatLng | LatLngLiteral
Return Value:
number
Returns the heading from one LatLng to another LatLng. Headings are expressed in degrees clockwise from North within the range [-180,180).
computeLength(path[, radius])
Parameters:
-
path:Array < LatLng | LatLngLiteral >| MVCArray < LatLng | LatLngLiteral > -
radius:number optional
Return Value:
number
Returns the length of the given path.
computeOffset(from, distance, heading[, radius])
Parameters:
-
from:LatLng | LatLngLiteral -
distance:number -
heading:number -
radius:number optional
Return Value:
LatLng
Returns the LatLng resulting from moving a distance from an origin in the specified heading (expressed in degrees clockwise from north).
computeOffsetOrigin(to, distance, heading[, radius])
Parameters:
-
to:LatLng | LatLngLiteral -
distance:number -
heading:number -
radius:number optional
Return Value:
LatLng
|null
Returns the location of origin when provided with a LatLng destination, meters travelled and original heading. Headings are expressed in degrees clockwise from North. This function returns
null
when no solution is available.computeSignedArea(loop[, radius])
Parameters:
-
loop:Array < LatLng | LatLngLiteral >| MVCArray < LatLng | LatLngLiteral > -
radius:number optional
Return Value:
number
Returns the signed area of a closed path, where counterclockwise is positive, in the range [-2×pi×radius², 2×pi×radius²]. The computed area uses the same units as the radius. The radius defaults to the Earth's radius in meters, in which case the area is in square meters.
The area is computed using the parallel transport method; the parallel transport around a closed path on the unit sphere twists by an angle that is equal to the area enclosed by the path. This is simpler and more accurate and robust than triangulation using Girard, l'Huilier, or Eriksson on each triangle. In particular, since it doesn't triangulate, it suffers no instability except in the unavoidable case when an edge (not a diagonal) of the polygon spans 180 degrees.
The area is computed using the parallel transport method; the parallel transport around a closed path on the unit sphere twists by an angle that is equal to the area enclosed by the path. This is simpler and more accurate and robust than triangulation using Girard, l'Huilier, or Eriksson on each triangle. In particular, since it doesn't triangulate, it suffers no instability except in the unavoidable case when an edge (not a diagonal) of the polygon spans 180 degrees.
interpolate(from, to, fraction)
Parameters:
-
from:LatLng | LatLngLiteral -
to:LatLng | LatLngLiteral -
fraction:number
Return Value:
LatLng
Returns the LatLng which lies the given fraction of the way between the origin LatLng and the destination LatLng.
traversePath(path, fraction)
Parameters:
-
path:Array < LatLng | LatLngLiteral | LatLngAltitude | LatLngAltitudeLiteral > -
fraction:number
Return Value:
LatLngLiteral
Returns the position which lies the given fraction of the way along the given path. If passing LatLngAltitude objects, altitude is currently ignored, but future versions may take altitude into account.
poly namespace
google.maps.geometry
. poly
namespace
Utility functions for computations involving polygons and polylines.
const { poly } = await google . maps . importLibrary ( "geometry" );
Static Methods
containsLocation(point, polygon)
Parameters:
-
point:LatLng | LatLngLiteral -
polygon:Polygon
Return Value:
boolean
Computes whether the given point lies inside the specified polygon.
isLocationOnEdge(point, poly[, tolerance])
Parameters:
-
point:LatLng | LatLngLiteral -
poly:Polygon | Polyline -
tolerance:number optional
Return Value:
boolean
Computes whether the given point lies on or near to a polyline, or the edge of a polygon, within a specified tolerance. Returns
true
when the difference between the latitude and longitude of the supplied point, and the closest point on the edge, is less than the tolerance. The tolerance defaults to 10 -9
degrees.
