Geometry Library

encoding 命名空間

google.maps.geometry.encoding namespace
library "geometry"

折線編碼及解碼的公用程式。

const {encoding} = await google.maps.importLibrary("geometry");
decodePath
decodePath(encodedPath)
參數:
  • encodedPath:string
傳回值: Array<LatLng>
將編碼路徑字串解碼為 LatLngs 序數。
encodePath
encodePath(path)
傳回值: string
將 LatLngs 的序數編碼為編碼路徑字串。

spherical 命名空間

google.maps.geometry.spherical namespace
library "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 namespace
library "geometry"

用於計算多邊形和折線的公用函式。

const {poly} = await google.maps.importLibrary("geometry");
containsLocation
containsLocation(point, polygon)
參數:
傳回值: boolean
計算指定點是否位於指定多邊形內。
isLocationOnEdge
isLocationOnEdge(point, poly[, tolerance])
參數:
傳回值: boolean
計算指定點是否位於折線或多邊形邊緣上或附近,且在指定容許範圍內。如果指定點的經緯度與邊緣上最近點的經緯度之間的差異小於容許值,則傳回 true。預設的公差值為 10-9 度。