PlacesService 類別
class
google.maps.places.PlacesService
library "places"
包含搜尋地點和擷取地點詳細資料的方法。
const {PlacesService} = await google.maps.importLibrary("places");
建構函式 | |
|---|---|
PlacesService |
PlacesService(attrContainer)參數:
建立 PlacesService 的新例項,在指定容器中顯示出處。 |
方法 | |
|---|---|
findPlaceFromPhoneNumber |
findPlaceFromPhoneNumber(request, callback)參數:
傳回值:無
根據電話號碼擷取地點清單。在大多數情況下,結果清單中應該只有一個項目,但如果要求不明確,可能會傳回多個結果。傳遞至回呼的 PlaceResult 是完整 PlaceResult 的子集。應用程式可以呼叫 PlacesService.getDetails 並傳遞所需地點的 PlaceResult.place_id,取得更詳細的 PlaceResult。 |
findPlaceFromQuery |
findPlaceFromQuery(request, callback)參數:
傳回值:無
根據查詢字串擷取地點清單。在大多數情況下,結果清單中應該只有一個項目,但如果要求不明確,可能會傳回多個結果。傳遞至回呼的 PlaceResult 是完整 PlaceResult 的子集。應用程式可以呼叫 PlacesService.getDetails 並傳遞所需地點的 PlaceResult.place_id,取得更詳細的 PlaceResult。 |
getDetails |
getDetails(request, callback)參數:
傳回值:無
擷取指定 placeId 識別的地點詳細資料。 |
nearbySearch |
nearbySearch(request, callback)參數:
傳回值:無
根據關鍵字或類型,擷取特定位置附近的地點清單。您必須一律指定位置,方法是傳遞 LatLngBounds,或 location 和 radius 參數。傳遞至回呼的 PlaceResult 是完整 PlaceResult 的子集。應用程式可以傳送 Place Details 要求,並傳遞所需地點的 PlaceResult.place_id,取得該地點更詳細的 PlaceResult。PlaceSearchPagination 物件可用於擷取其他結果頁面 (如果這是最後一個結果頁面,或只有一個結果頁面,則為空值)。 |
textSearch |
textSearch(request, callback)參數:
傳回值:無
根據查詢字串 (例如「台南魯肉飯」或「西門町附近的鞋店」) 擷取地點清單。位置參數為選用項目。指定位置後,系統只會優先顯示附近的地點,而非僅限於該區域內的地點。如要使用任意字串搜尋地點,且不想將搜尋結果限制在特定位置,請使用 textSearch。PlaceSearchPagination 物件可用於擷取其他結果頁面 (如果這是最後一個結果頁面,或只有一個結果頁面,則為空值)。 |
PlaceDetailsRequest 介面
介面
google.maps.places.PlaceDetailsRequest
要傳送至 PlacesService 的 Place Details 查詢。
屬性 | |
|---|---|
placeId |
類型:
string要查詢詳細資料的地點 ID。 |
fields
選填 |
類型:
Array<string> optional詳細資料回應中應包含的欄位,這些欄位會產生費用。如未指定欄位或傳入 ['ALL'],系統會傳回所有可用欄位並據此收費 (不建議在正式環境部署作業中這麼做)。如需欄位清單,請參閱 PlaceResult。巢狀欄位可以使用點路徑指定 (例如 "geometry.location")。 |
language
選填 |
類型:
string optional語言 ID,用於指定傳回詳細資料時使用的語言。請參閱支援語言清單。 |
region
選填 |
類型:
string optional使用者所在區域的區域代碼。這可能會影響傳回的相片,以及其他內容。區碼接受 ccTLD (「頂層網域」) 的兩位字元值。多數 ccTLD 代碼與 ISO 3166-1 代碼相同,只有少數例外。舉例來說,英國的 ccTLD 是「uk」( .co.uk),而 ISO 3166-1 代碼則是「gb」(技術上代表「大不列顛暨北愛爾蘭聯合王國」)。 |
sessionToken
選填 |
類型:
AutocompleteSessionToken optional用於將詳細資料要求與自動完成工作階段綁定的專屬參照。 |
FindPlaceFromPhoneNumberRequest 介面
介面
google.maps.places.FindPlaceFromPhoneNumberRequest
要傳送至 PlacesService.findPlaceFromPhoneNumber 的「透過文字搜尋尋找地點」要求。
屬性 | |
|---|---|
fields |
類型:
Array<string>要納入回應的欄位,這些欄位會計費。如果傳入 ['ALL'],系統會傳回所有可用的欄位並據此收費 (不建議用於實際工作環境部署作業)。如需欄位清單,請參閱 PlaceResult。巢狀欄位可以使用點路徑指定 (例如 "geometry.location")。 |
phoneNumber |
類型:
string要查詢的地點電話號碼。格式必須為 E.164。 |
language
選填 |
類型:
string optional語言 ID,用於指定名稱和地址應盡可能以何種語言傳回。請參閱支援語言清單。 |
locationBias
選填 |
類型:
LocationBias optional搜尋地點時使用的偏好設定。結果會優先 (但不限於) 顯示指定 LocationBias 內的結果。 |
FindPlaceFromQueryRequest 介面
介面
google.maps.places.FindPlaceFromQueryRequest
要傳送至 PlacesService.findPlaceFromQuery 的「透過文字搜尋尋找地點」要求。
屬性 | |
|---|---|
fields |
類型:
Array<string>要納入回應的欄位,這些欄位會計費。如果傳入 ['ALL'],系統會傳回所有可用的欄位並據此收費 (不建議用於實際工作環境部署作業)。如需欄位清單,請參閱 PlaceResult。巢狀欄位可以使用點路徑指定 (例如 "geometry.location")。 |
query |
類型:
string要求的查詢。例如地點名稱或地址。 |
language
選填 |
類型:
string optional語言 ID,用於指定名稱和地址應盡可能以何種語言傳回。請參閱支援語言清單。 |
locationBias
選填 |
類型:
LocationBias optional搜尋地點時使用的偏好設定。結果會優先 (但不限於) 顯示指定 LocationBias 內的結果。 |
PlaceSearchRequest 介面
介面
google.maps.places.PlaceSearchRequest
要傳送至 PlacesService 的地點搜尋查詢。
屬性 | |
|---|---|
bounds
選填 |
類型:
LatLngBounds|LatLngBoundsLiteral optional搜尋地點的範圍。如果設定 bounds,系統會忽略 location 和 radius。 |
keyword
選填 |
類型:
string optional要與所有可用欄位比對的字詞,包括但不限於名稱、類型、地址、客戶評論以及其他第三方內容。 |
language
選填 |
類型:
string optional語言 ID,用於指定名稱和地址應盡可能以何種語言傳回。請參閱支援語言清單。 |
location
選填 |
類型:
LatLng|LatLngLiteral optional要搜尋地點的周邊位置。 |
maxPriceLevel
選填 |
類型:
number optional限制系統只傳回指定價格範圍內或更低的地點。有效值介於 0 (最便宜) 和 4 (最昂貴),含首尾。如已指定,則必須大於或等於 minPrice 。 |
minPriceLevel
選填 |
類型:
number optional限制系統只傳回指定價格等級或以上的地點。有效值介於 0 (最便宜) 和 4 (最昂貴),含首尾。如果指定,則必須小於或等於 maxPrice。 |
選填 |
類型:
string optional等同於 keyword。這個欄位的值會與 keyword 欄位的值合併,並做為同一個搜尋字串的一部分傳送。 |
openNow
選填 |
類型:
boolean optional限制系統只傳回目前營業的地點。 |
radius
選填 |
類型:
number optional與指定地點的距離 (以公尺為單位),用於搜尋 Places。最大值為 50,000。 |
rankBy
選填 |
類型:
RankBy optional預設值:
RankBy.PROMINENCE指定傳回結果時要使用的排名方法。請注意,當 rankBy 設為 DISTANCE 時,您必須指定 location,但無法指定 radius 或 bounds。 |
type
選填 |
類型:
string optional搜尋指定類型的地點。系統會將類型翻譯成要求目標位置的當地語言,並做為查詢字串。如果同時提供查詢,則會與本地化類型字串串連。系統會從回覆中捨棄不同類型的結果。這個欄位可用來執行不限語言和區域的類別搜尋。有效類型請見這裡。 |
TextSearchRequest 介面
介面
google.maps.places.TextSearchRequest
要傳送至 PlacesService 的文字搜尋要求。
屬性 | |
|---|---|
bounds
選填 |
類型:
LatLngBounds|LatLngBoundsLiteral optional搜尋地點時,用於偏好結果的邊界 (選用)。如果設定 bounds,系統會忽略 location 和 radius。結果不限於這些邊界內的地點,但邊界內的地點會優先顯示。 |
language
選填 |
類型:
string optional語言 ID,用於指定名稱和地址應盡可能以何種語言傳回。請參閱支援語言清單。 |
location
選填 |
類型:
LatLng|LatLngLiteral optional搜尋 Places 時,用於偏好結果的區域中心。 |
query
選填 |
類型:
string optional要求的查詢字詞。例如地點名稱 (「艾菲爾鐵塔」)、類別加上地點名稱 (「紐約披薩」),或地點名稱加上地點消歧器 (「雪梨星巴克」)。 |
radius
選填 |
類型:
number optional搜尋 Places 時,用於自訂調整結果的區域半徑 (以公尺為單位)。 |
region
選填 |
類型:
string optional偏向結果的區域代碼。區碼接受 ccTLD (「頂層網域」) 的兩位字元值。多數 ccTLD 代碼與 ISO 3166-1 代碼相同,只有少數例外。舉例來說,英國的 ccTLD 是「uk」( .co.uk),而 ISO 3166-1 代碼則是「gb」(技術上代表「大不列顛暨北愛爾蘭聯合王國」)。 |
type
選填 |
類型:
string optional搜尋指定類型的地點。系統會將類型翻譯成要求目標位置的當地語言,並做為查詢字串。如果同時提供查詢,則會與本地化類型字串串連。系統會從回覆中捨棄其他類型的結果。這個欄位可用來執行不限語言和區域的類別搜尋。有效類型請見這裡。 |
RankBy 常數
constants
google.maps.places.RankBy
library "places"
PlaceSearchRequest 的排序選項。
const {RankBy} = await google.maps.importLibrary("places");
常數 | |
|---|---|
DISTANCE |
依地點距離遠近排序地點結果。 |
PROMINENCE |
依知名度排序地點結果。 |
LocationBias typedef
typedef
google.maps.places.LocationBias
LocationBias 代表搜尋 Places 時,要使用的軟邊界或提示。結果可能來自指定區域以外。如要使用目前使用者的 IP 位址做為偏好設定,可以指定字串 "IP_BIAS"。注意:如果使用 Circle,則必須定義中心和半徑。
LatLng|LatLngLiteral|LatLngAltitude|LatLngAltitudeLiteral|LatLngBounds|LatLngBoundsLiteral|Circle|CircleLiteral|string
LocationRestriction typedef
typedef
google.maps.places.LocationRestriction
LocationRestriction 代表搜尋 Places 時使用的嚴格邊界。
PlacesServiceStatus 常數
constants
google.maps.places.PlacesServiceStatus
library "places"
PlacesService 完成搜尋後傳回的狀態。請依值或使用常數名稱指定這些值。例如 'OK' 或 google.maps.places.PlacesServiceStatus.OK。
這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 PlacesServiceStatusString 類型定義。
const {PlacesServiceStatus} = await google.maps.importLibrary("places");
常數 | |
|---|---|
INVALID_REQUEST |
這個要求無效。 |
NOT_FOUND |
找不到參照的地點。 |
OK |
回應包含有效的結果。 |
OVER_QUERY_LIMIT |
應用程式已超過要求配額。 |
REQUEST_DENIED |
應用程式不得使用 PlacesService。 |
UNKNOWN_ERROR |
伺服器發生錯誤,無法處理 PlacesService 要求。如果您再試一次,該要求可能會成功。 |
ZERO_RESULTS |
找不到這項要求的結果。 |
PlaceSearchPagination 介面
介面
google.maps.places.PlaceSearchPagination
用來擷取其他地點結果頁面的物件。
屬性 | |
|---|---|
hasNextPage |
類型:
boolean指出是否還有其他結果。有其他結果網頁時,值為 true。 |
方法 | |
|---|---|
nextPage |
nextPage()參數:無
傳回值:
void擷取下一頁結果。使用與第一個搜尋要求相同的回呼函式。 |
PlaceResult 介面
介面
google.maps.places.PlaceResult
定義地點相關資訊。
屬性 | |
|---|---|
address_components
選填 |
類型:
Array<GeocoderAddressComponent> optional這個地點位置的地址元件集合。僅適用於 PlacesService.getDetails。 |
adr_address
選填 |
類型:
string optional地點地址的 adr 微格式表示法。僅適用於 PlacesService.getDetails。 |
aspects
選填 |
類型:
Array<根據 Google 和 Zagat 使用者評論,這個地點的評分面向。評分範圍為 0 到 30。 |
business_status
選填 |
類型:
BusinessStatus optional如果地點是商家,則會顯示營業狀態標記 (表示地點是否營業,或暫停營業/永久停業)。如果沒有可用資料,搜尋或詳細資料回應中就不會顯示標記。 |
formatted_address
選填 |
類型:
string optional地點的完整地址。 |
formatted_phone_number
選填 |
類型:
string optional地點的電話號碼,格式取決於 號碼的地方慣例。僅適用於 PlacesService.getDetails。 |
geometry
選填 |
類型:
PlaceGeometry optional地點的幾何圖形相關資訊。 |
html_attributions
選填 |
類型:
Array<string> optional這個地點結果所要顯示的作者資訊文字。無論要求哪些 fields,系統一律會傳回可用的 html_attributions,且必須顯示。 |
icon
選填 |
類型:
string optional可用來代表這個地點類別的圖片資源網址。 |
icon_background_color
選填 |
類型:
string optional與地點圖示搭配使用的背景顏色。另請參閱 PlaceResult.icon_mask_base_uri。 |
icon_mask_base_uri
選填 |
類型:
string optional圖示遮罩的截斷網址。在結尾附加副檔名 (即 .svg 或 .png),即可存取不同的圖示類型。 |
international_phone_number
選填 |
類型:
string optional地點的電話號碼 (國際電話號碼格式)。國際通用格式包含國碼,而且前置字元為加號 (+)。僅適用於 PlacesService.getDetails。 |
name
選填 |
類型:
string optional地點名稱。注意:如果是使用者輸入的地點,這會是使用者輸入的原始文字。使用這類資料時請務必謹慎,因為惡意使用者可能會嘗試將其做為注入式攻擊的媒介 (請參閱 http://en.wikipedia.org/wiki/Code_injection)。 |
opening_hours
選填 |
類型:
PlaceOpeningHours optional定義地點的營業時間。 |
選填 |
類型:
boolean optional這個標記表示地點是否永久或暫時關閉。如果地點正常營業,或沒有相關資料,回應就不會顯示這個標記。 |
photos
選填 |
類型:
Array<PlacePhoto> optional這個地點的相片。集合最多可包含十個 PlacePhoto 物件。 |
place_id
選填 |
類型:
string optional地點的專屬 ID。 |
plus_code
選填 |
類型:
PlacePlusCode optional定義地點的 Open Location Code 或「Plus Code」。 |
price_level
選填 |
類型:
number optional地點的價格等級,範圍為 0 到 4。價格等級的解讀方式如下:
|
rating
選填 |
類型:
number optional根據使用者對這個地點的評論,給予 1.0 到 5.0 的評分。 |
reviews
選填 |
類型:
Array<PlaceReview> optional這個地點的評論清單。僅適用於 PlacesService.getDetails。 |
types
選填 |
類型:
Array<string> optional |
url
選填 |
類型:
string optional這個地點的 Google 官方頁面網址。這是 Google 自有的頁面,內含該地點的實用資訊。僅適用於 PlacesService.getDetails。 |
user_ratings_total
選填 |
類型:
number optional使用者對這個地點的評分數量,這些評分會影響地點的 PlaceResult.rating。 |
選填 |
類型:
number optional地點目前時區與世界標準時間 (UTC) 的時差,以分鐘為單位。舉例來說,澳洲雪梨在夏令時間比世界標準時間快 11 小時,因此 utc_offset 會是 660。如果時區晚於世界標準時間,偏移量為負值。舉例來說,維德角的 utc_offset 是 -60。僅適用於 PlacesService.getDetails。 |
utc_offset_minutes
選填 |
類型:
number optional地點目前時區與世界標準時間 (UTC) 的時差,以分鐘為單位。舉例來說,澳洲雪梨在夏令時間比世界標準時間快 11 小時,因此 utc_offset_minutes 會是 660。如果時區晚於世界標準時間,偏移值為負數。舉例來說,維德角的 utc_offset_minutes 是 -60。僅適用於 PlacesService.getDetails。 |
vicinity
選填 |
類型:
string optional地點的簡化地址,包括街道名稱、門牌號碼和縣市,但不含省/州、郵遞區號或國家/地區。舉例來說,Google 澳洲雪梨辦公室的 vicinity 值為 "48 Pirrama Road, Pyrmont"。僅適用於 PlacesService.getDetails。 |
website
選填 |
類型:
string optional這個地點的官方網站,例如商家的首頁。僅適用於 PlacesService.getDetails。 |
PlaceAspectRating 介面
介面
google.maps.places.PlaceAspectRating
定義使用者評論的地點相關資訊。
屬性 | |
|---|---|
rating |
類型:
number這個面向的評分。個別評論的值為 0 到 3 的整數。如果是地點的累計評分,則為 0 到 30 之間的整數。 |
type |
類型:
string切面類型。例如: "food"、"decor"、"service" 或 "overall"。 |
BusinessStatus 常數
constants
google.maps.places.BusinessStatus
library "places"
地點的營業狀態。詳情請參閱網路服務說明文件。
這些常數也可以做為字串使用。在 TypeScript 中,字串常值是由 BusinessStatusString 類型定義。
const {BusinessStatus} = await google.maps.importLibrary("places");
常數 | |
|---|---|
CLOSED_PERMANENTLY |
商家已永久歇業。詳情請參閱網路服務說明文件。 |
CLOSED_TEMPORARILY |
商家暫停營業。詳情請參閱網路服務說明文件。 |
FUTURE_OPENING |
該地點日後會營業。詳情請參閱網路服務說明文件。 |
OPERATIONAL |
商家正在營業,但不一定現在有開。詳情請參閱網路服務說明文件。 |
PlaceGeometry 介面
介面
google.maps.places.PlaceGeometry
定義地點的幾何圖形資訊。
屬性 | |
|---|---|
location
選填 |
類型:
LatLng optional地點的位置。 |
viewport
選填 |
類型:
LatLngBounds optional在地圖上顯示這個地點時,優先使用的可視區域。如果地點的首選可視區域不明,這個屬性會是 null。僅適用於 PlacesService.getDetails。 |
PlaceOpeningHours 介面
介面
google.maps.places.PlaceOpeningHours
定義地點營業時間的相關資訊。
屬性 | |
|---|---|
選填 |
類型:
boolean optional地點目前是否營業中。 |
periods
選填 |
類型:
Array<PlaceOpeningHoursPeriod> optional涵蓋一週每天的營業時段,從週日開始,按時間順序排列。不含地點未開放的日子。僅適用於 PlacesService.getDetails。 |
weekday_text
選填 |
類型:
Array<string> optional包含七個字串的陣列,以特定格式表示一週內每天的營業時間。Places 服務會配合目前語言調整營業時間格式,並將時間在地化。這個陣列中的元素順序取決於語言。有些語言是以週一做為每週起始日,有些則是週日。僅適用於 PlacesService.getDetails。其他呼叫可能會傳回空白陣列。 |
方法 | |
|---|---|
isOpen |
isOpen([date])參數:
傳回值:
boolean|undefined檢查地點目前是否營業 (未傳遞日期時),或在指定日期是否營業。如果這個地點沒有 PlaceResult.utc_offset_minutes 或 PlaceOpeningHours.periods,則會傳回 undefined (PlaceOpeningHours.periods 只能透過 PlacesService.getDetails 取得)。這個方法不會考量特殊營業時間,例如節慶營業時間。 |
PlaceOpeningHoursPeriod 介面
介面
google.maps.places.PlaceOpeningHoursPeriod
定義地點營業時間的結構化資訊。注意:如果地點全年無休,回應中會缺少 close 部分。如果用戶端要表示「全年無休」,可以將 open 時間中 day 的值設為 0,time 的值設為 "0000",且不含 close。
屬性 | |
|---|---|
open |
地點的營業時間。 |
close
選填 |
類型:
PlaceOpeningHoursTime optional地點的關閉時間。 |
PlaceOpeningHoursTime 介面
介面
google.maps.places.PlaceOpeningHoursTime
定義地點的營業時間。
屬性 | |
|---|---|
day |
類型:
number星期幾,以 [ 0, 6] 範圍內的數字表示,從星期日開始。例如,2 表示週二。 |
hours |
類型:
number |
minutes |
類型:
number |
time |
類型:
string以 24 小時制「hhmm」格式表示的時間。值介於 [ "0000", "2359"] 之間。系統會以地點的時區回報時間。 |
nextDate
選填 |
類型:
number optional時間戳記 (自 Epoch 紀元時間起算的毫秒數,適合與 new Date() 搭配使用),代表這個 PlaceOpeningHoursTime 的下次發生時間。計算依據為一週的PlaceOpeningHoursTime.day、PlaceOpeningHoursTime.time和PlaceResult.utc_offset_minutes。如果 PlaceResult.utc_offset_minutes 為 undefined,則 nextDate 為 undefined。 |
PlacePlusCode 介面
介面
google.maps.places.PlacePlusCode
定義地點的 Open Location Code 或「Plus Code」。對於沒有詳細地址的地點,Plus Codes 可用於取代街道地址,例如無編號的建築物或無名街道。
屬性 | |
|---|---|
global_code |
類型:
stringPlus Code,面積為 1/8000 度 x 1/8000 度。例如: "8FVC9G8F+5W"。 |
compound_code
選填 |
類型:
string optionalPlus Code,面積為 1/8000 度乘以 1/8000 度,其中前四個字元 (區碼) 會移除,並替換為位置說明。例如, "9G8F+5W Zurich, Switzerland"。如果找不到適合縮短代碼的地區,系統會省略這個欄位。 |
PlacePhoto 介面
介面
google.maps.places.PlacePhoto
代表地點的相片元素。
屬性 | |
|---|---|
height |
類型:
number相片高度 (以像素為單位)。 |
html_attributions |
類型:
Array<string>這張相片要顯示的作者資訊文字。 |
width |
類型:
number相片寬度 (以像素為單位)。 |
方法 | |
|---|---|
getUrl |
getUrl([opts])參數:
傳回值:
string傳回與指定選項對應的圖片網址。 |
PhotoOptions 介面
介面
google.maps.places.PhotoOptions
定義相片要求選項。
屬性 | |
|---|---|
maxHeight
選填 |
類型:
number optional傳回圖片的高度上限 (以像素為單位)。 |
maxWidth
選填 |
類型:
number optional傳回圖片的寬度上限 (以像素為單位)。 |
PlaceReview 介面
介面
google.maps.places.PlaceReview
代表地點的單一評論。
屬性 | |
|---|---|
author_name |
類型:
string評論者的名稱。 |
language |
類型:
string網際網路工程任務組 (IETF) 語言代碼,指出這則評論所使用的語言。請注意,這個代碼只包含主要語言標記,不含表示國家/地區或區域的次要標記。舉例來說,所有英文評論都會標示為 'en',而非「en-AU」或「en-UK」。 |
profile_photo_url |
類型:
string評論者個人資料圖片的網址。 |
relative_time_description |
類型:
string近期時間的格式化字串,以適合語言和國家/地區的形式,表示評論時間與目前時間的相對關係。例如 "a month ago"。 |
text |
類型:
string評論文字。 |
time |
類型:
number評論的時間戳記,以自 Epoch 起算的秒數表示。 |
選填 |
類型:
Array<評論評分的項目。評分範圍為 0 到 3。 |
author_url
選填 |
類型:
string optional評論者個人資料的網址。如果無法取得評論者的個人資料,則會顯示「 undefined」。 |
rating
選填 |
類型:
number optional這則評論的評分,介於 1.0 至 5.0 (含) 之間。 |