Autocomplete Data

AutocompleteSuggestion 類別

google.maps.places.AutocompleteSuggestion class
library "places"

自動完成建議結果。

const {AutocompleteSuggestion} = await google.maps.importLibrary("places");
fetchAutocompleteSuggestions
fetchAutocompleteSuggestions(autocompleteRequest)
參數:
傳回值: Promise<{suggestions:Array<AutocompleteSuggestion>}>
擷取 AutocompleteSuggestions 清單。

如果要求中提供 AutocompleteRequest.sessionToken,則在產生的 PlacePrediction 上,針對 PlacePrediction.toPlace 傳回的每個 Place 首次呼叫 Place.fetchFields 時,系統會自動加入該工作階段符記。
placePrediction
readonly
類型: PlacePrediction optional
包含傳回結果的人類可讀名稱。如果是商家結果,通常會顯示商家名稱和地址。

如果在用來擷取這個 AutocompleteSuggestion 的 AutocompleteRequest 中提供 AutocompleteRequest.sessionToken,則在對呼叫 PlacePrediction.toPlace 傳回的 Place 首次呼叫 Place.fetchFields 時,系統會自動加入相同的權杖。

AutocompleteRequest 介面

google.maps.places.AutocompleteRequest 介面

AutocompleteSuggestion.fetchAutocompleteSuggestions 的要求介面。

input
類型: string
要搜尋的文字字串。
futureOpeningBusinessesIncluded
選填
類型: boolean optional
納入尚未營業但預計未來會營業的商家地點預測。
includedPrimaryTypes
選填
類型: Array<string> optional
包含主要地點類型 (例如「restaurant」或「gas_station」)。

只有在主要類型包含於這份清單時,系統才會傳回地點。最多可指定 5 個值。如未指定類型,則會傳回所有地點類型。
includedRegionCodes
選填
類型: Array<string> optional
僅納入指定區域的結果,最多可指定 15 個 CLDR 雙字元區域代碼。空白集合不會限制結果。如果同時設定 locationRestriction 和 includedRegionCodes,結果會位於交集區域。
inputOffset
選填
類型: number optional
input 的 Unicode 字元偏移量 (從零開始),表示游標在 input 中的位置。游標位置可能會影響傳回的預測結果。如未指定,則預設為 input 的長度。
language
選填
類型: string optional
傳回結果時使用的語言。預設為瀏覽器的語言偏好設定。如果 input 使用的語言與 language 不同,或傳回的地點沒有從當地語言翻譯成 language,結果可能會混合多種語言。
locationBias
選填
類型: LocationBias optional
針對指定位置調整結果。

locationBias 或 locationRestriction 最多只能設定一個。如果兩者皆未設定,系統會根據 IP 位址調整結果,也就是將 IP 位址對應至不精確的位置,並做為調整信號。
locationRestriction
選填
類型: LocationRestriction optional
將結果限制在指定位置。

locationBias 或 locationRestriction 最多只能設定一個。如果兩者皆未設定,系統會根據 IP 位址調整結果,也就是將 IP 位址對應至不精確的位置,並做為調整信號。
origin
選填
類型: LatLng|LatLngLiteral optional
計算目的地測地線距離的起點 (以 PlacePrediction.distanceMeters 傳回)。如果省略這個值,系統就不會傳回測地線距離。
pureServiceAreaBusinessesIncluded
選填
類型: boolean optional
如果欄位設為 true,則納入完全無店面區域商家。完全無店面區域商家會直接配送或到場服務,但不在公司地址為顧客提供服務。舉例來說,清潔或水電服務等商家可能沒有實體地址,或在 Google 地圖上沒有地點。
region
選填
類型: string optional
區碼,指定為 CLDR 雙字元區碼。這會影響地址格式、結果排名,以及傳回的結果。這不會將結果限制在指定區域。
sessionToken
選填
類型: AutocompleteSessionToken optional
用於識別 Autocomplete 工作階段的權杖,以便計費。透過 AutocompleteSessionToken 產生新的工作階段符記。

工作階段是從使用者輸入查詢時開始,到使用者選取地點並呼叫 Place.fetchFields 時結束。在每個工作階段中,使用者可以輸入多筆查詢,最終發出一個 fetchFields 呼叫。在工作階段中,每項要求使用的憑證都必須屬於同一個 Google Cloud 控制台專案。工作階段結束後,符記就會失效。您的應用程式必須為每個工作階段產生新的符記。如果省略 sessionToken 參數或重複使用工作階段符記,系統會視為未提供工作階段符記,並針對工作階段收費 (每個要求分別收費)。

在 AutocompleteSuggestion.fetchAutocompleteSuggestions 要求中提供工作階段符記時,系統會自動將相同符記納入對 Place 呼叫 fetchFields 的第一個呼叫,而 是透過對其中一個結果 AutocompleteSuggestion 呼叫 PlacePrediction.toPlace 傳回。

建議您遵循下列規範:
  • 所有 Place Autocomplete 呼叫都使用工作階段符記。
  • 為每個工作階段產生新的權杖。
  • 請務必針對每個新的工作階段傳遞不重複的工作階段符記。如果多個工作階段使用同一個權杖,則每個要求會分別計費。

AutocompleteSessionToken 類別

google.maps.places.AutocompleteSessionToken class
library "places"

代表用於追蹤自動完成工作階段的工作階段符記。

const {AutocompleteSessionToken} = await google.maps.importLibrary("places");
AutocompleteSessionToken
AutocompleteSessionToken()
參數:無
用來建立 AutocompleteSessionToken 的新例項。

PlacePrediction 類別

google.maps.places.PlacePrediction class
library "places"

Place Autocomplete 自動預測結果。

const {PlacePrediction} = await google.maps.importLibrary("places");
distanceMeters
readonly
類型: number optional
如果指定 origin,則為測地線長度 (以公尺為單位,從 origin 算起)。
mainText
readonly
類型: FormattableText optional
代表地點名稱。
placeId
readonly
類型: string
建議地點的專屬 ID。這個 ID 可用於其他接受地點 ID 的 API。
secondaryText
readonly
類型: FormattableText optional
代表其他區分特徵 (例如城市或區域),可進一步識別地點。
text
readonly
類型: FormattableText
包含傳回結果的人類可讀名稱。如果是商家結果,通常會顯示商家名稱和地址。

建議想顯示單一 UI 元素的開發人員使用 text。如果開發人員想顯示兩個獨立但相關的 UI 元素,建議改用 PlacePrediction.mainText 和 PlacePrediction.secondaryText。
types
readonly
類型: Array<string>
適用於這個地點的類型清單,取自 https://developers.google.com/maps/documentation/places/web-service/place-types 的表 A 或表 B。
BetafetchAddressValidation
fetchAddressValidation(request)
參數:
傳送與這個自動完成工作階段相關聯的地址驗證要求 (在內部使用自動完成工作階段符記填入要求)。系統不會自動納入 PlacePrediction 的地點資訊,這個方法只是為了方便管理自動完成工作階段。
toPlace
toPlace()
參數:無
傳回值: Place
傳回這個 PlacePrediction 的 Place 表示法。您必須接著呼叫 Place.fetchFields,才能取得完整的地點詳細資料。

如果用於擷取這個 PlacePrediction 的 AutocompleteRequest 提供了 AutocompleteRequest.sessionToken,則呼叫 fetchFields 時會自動包含相同的權杖。

或者,使用 PlaceAutocompleteElement 時,對 PlacePrediction.toPlace 傳回的 Place 首次呼叫 Place.fetchFields,會自動包含工作階段符記。

StringRange 類別

google.maps.places.StringRange class
library "places"

識別指定文字中的子字串。

const {StringRange} = await google.maps.importLibrary("places");
endOffset
readonly
類型: number
子字串最後一個 Unicode 字元的偏移量 (不含該值),以零為基準。
startOffset
readonly
類型: number
子字串第一個 Unicode 字元的偏移值 (從零開始,含)。

FormattableText 類別

google.maps.places.FormattableText class
library "places"

代表地點預測結果的文字。文字可直接使用或設定格式。

const {FormattableText} = await google.maps.importLibrary("places");
matches
readonly
類型: Array<StringRange>
字串範圍清單,用於識別輸入要求在 FormattableText.text 中的相符位置。範圍可用於設定 text 特定部分的格式。如果比對是依據字串比對以外的條件 (例如拼字校正或音譯) 判定,子字串可能不會與 AutocompleteRequest.input 完全相符。這些值是 FormattableText.text 的 Unicode 字元偏移量。範圍會依偏移值遞增排序。
text
readonly
類型: string
可直接使用或以 FormattableText.matches 設定格式的文字。