Geometry Library

encoding 命名空间

命名空间 google.maps.geometry.encoding
库 "geometry"

折线编码和解码实用工具

const {encoding} = await google.maps.importLibrary("geometry");
decodePath
decodePath(encodedPath)
参数:
  • encodedPath: string
返回值:Array<LatLng>
用于将编码路径字符串解码为一系列 LatLng。
encodePath
encodePath(path)
返回值:string
用于将一系列 LatLng 编码为编码路径字符串。

spherical 命名空间

命名空间 google.maps.geometry.spherical
库 "geometry"

用于计算测地线角度、距离和面积的实用函数。默认半径为地球半径(即 6378137 米)。

const {spherical} = await google.maps.importLibrary("geometry");
computeArea
computeArea(path[, radiusOfSphere])
返回值:number
返回闭合路径的无符号面积,范围为 [0, 2×pi×radius²]。计算出的面积与半径使用相同的单位。radiusOfSphere 默认为地球半径(以米为单位),在这种情况下,面积以平方米为单位。传递 Circle 时,需要将 radius 设置为非负值。此外,圆圈覆盖的球体面积不得超过 100%。传递 LatLngBounds 时,南侧 LatLng 的纬度不能高于北侧 LatLng。
computeDistanceBetween
computeDistanceBetween(from, to[, radius])
参数:
返回值:number
返回两个 LatLng 之间的距离(以米为单位)。您可以视需要指定自定义半径。半径默认为地球半径。
computeHeading
computeHeading(from, to)
返回值:number
返回从一个 LatLng 到另一个 LatLng 的航向。朝向以从正北方向顺时针旋转的角度表示,范围为 [-180,180)。
computeLength
computeLength(path[, radius])
参数:
返回值:number
返回给定路径的长度。
computeOffset
computeOffset(from, distance, heading[, radius])
参数:
返回值:LatLng
返回从原点沿指定航向(以从北顺时针方向的度数表示)移动一段距离后得到的 LatLng。
computeOffsetOrigin
computeOffsetOrigin(to, distance, heading[, radius])
参数:
返回值:LatLng|null
在提供 LatLng 目的地、行驶距离(以米为单位)和原始航向时,返回出发地位置。朝向以从正北方向顺时针旋转的角度表示。如果没有可用的解,此函数会返回 null。
computeSignedArea
computeSignedArea(loop[, radius])
参数:
返回值:number
返回闭合路径的有符号面积,其中逆时针为正,范围为 [-2×pi×radius², 2×pi×radius²]。计算出的面积与半径使用相同的单位。半径默认为地球半径(以米为单位),在这种情况下,面积以平方米为单位。

面积是使用平行移动方法计算的;单位球体上闭合路径周围的平行移动会扭曲一个角度,该角度等于路径所包围的面积。与在每个三角形上使用 Girard、l'Huilier 或 Eriksson 进行三角测量相比,这种方法更简单、更准确、更稳健。具体而言,由于它不进行三角剖分,因此不会出现不稳定性,除非多边形的边(而非对角线)跨越 180 度,这种情况是不可避免的。
interpolate
interpolate(from, to, fraction)
参数:
返回值:LatLng
返回位于起点 LatLng 和终点 LatLng 之间指定比例处的 LatLng。
AlphatraversePath
traversePath(path, fraction)
返回值:LatLngLiteral
返回位于沿给定路径的几分之一距离处的位置。如果传递 LatLngAltitude 对象,系统目前会忽略海拔高度,但未来版本可能会考虑海拔高度。

poly 命名空间

命名空间 google.maps.geometry.poly
库 "geometry"

用于执行涉及多边形和多段线的计算的实用函数。

const {poly} = await google.maps.importLibrary("geometry");
containsLocation
containsLocation(point, polygon)
参数:
返回值:boolean
计算给定点是否位于指定多边形内。
isLocationOnEdge
isLocationOnEdge(point, poly[, tolerance])
参数:
返回值:boolean
计算指定点是否位于多段线上或附近,或者是否位于多边形边缘上或附近(在指定公差范围内)。如果所提供点的纬度和经度与边缘上最近点的纬度和经度之间的差值小于公差,则返回 true。公差默认为 10-9 度。