Places Service (deprecated)

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
選填
搜尋地點的範圍。如果設定 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。
name
選填
類型: 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
選填
搜尋地點時,用於偏好結果的邊界 (選用)。如果設定 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 時使用的嚴格邊界。

LatLngBounds|LatLngBoundsLiteral

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<PlaceAspectRating> optional
根據 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
定義地點的營業時間。
permanently_closed
選填
類型: 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。價格等級的解讀方式如下:
  • 0:免費
  • 1:平價
  • 2:中等
  • 3:昂貴
  • 4:超高價位
rating
選填
類型: number optional
根據使用者對這個地點的評論,給予 1.0 到 5.0 的評分。
reviews
選填
類型: Array<PlaceReview> optional
這個地點的評論清單。僅適用於 PlacesService.getDetails。
types
選填
類型: Array<string> optional
這個地點的類型陣列 (例如 ["political", "locality"] 或 ["restaurant", "establishment"])。
url
選填
類型: string optional
這個地點的 Google 官方頁面網址。這是 Google 自有的頁面,內含該地點的實用資訊。僅適用於 PlacesService.getDetails。
user_ratings_total
選填
類型: number optional
使用者對這個地點的評分數量,這些評分會影響地點的 PlaceResult.rating。
utc_offset
選填
類型: 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

定義地點營業時間的相關資訊。

open_now
選填
類型: boolean optional
地點目前是否營業中。
periods
選填
類型: Array<PlaceOpeningHoursPeriod> optional
涵蓋一週每天的營業時段,從週日開始,按時間順序排列。不含地點未開放的日子。僅適用於 PlacesService.getDetails。
weekday_text
選填
類型: Array<string> optional
包含七個字串的陣列,以特定格式表示一週內每天的營業時間。Places 服務會配合目前語言調整營業時間格式,並將時間在地化。這個陣列中的元素順序取決於語言。有些語言是以週一做為每週起始日,有些則是週日。僅適用於 PlacesService.getDetails。其他呼叫可能會傳回空白陣列。
isOpen
isOpen([date])
參數:
  • date: Date optional
傳回值: 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
PlaceOpeningHoursTime.time 的小時數,以數字表示,範圍為 [0, 23]。系統會根據地點的時區回報這個值。
minutes
類型: number
PlaceOpeningHoursTime.time 的分鐘數,以數字表示,範圍為 [0, 59]。系統會以地點的時區回報這項資訊。
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
類型: string
Plus Code,面積為 1/8000 度 x 1/8000 度。例如:"8FVC9G8F+5W"。
compound_code
選填
類型: string optional
Plus 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 起算的秒數表示。
aspects
選填
類型: Array<PlaceAspectRating> optional
評論評分的項目。評分範圍為 0 到 3。
author_url
選填
類型: string optional
評論者個人資料的網址。如果無法取得評論者的個人資料,則會顯示「undefined」。
rating
選填
類型: number optional
這則評論的評分,介於 1.0 至 5.0 (含) 之間。