ภาพรวม
ฟังก์ชันในไลบรารีสถานที่ของ Maps JavaScript API ช่วยให้แอปพลิเคชันค้นหาสถานที่ (ซึ่งใน API นี้หมายถึงสถานประกอบการ สถานที่ตั้งทางภูมิศาสตร์ หรือจุดที่น่าสนใจที่โดดเด่น) ภายในพื้นที่ที่กำหนด เช่น ขอบเขตของแผนที่ หรือรอบๆ จุดคงที่
Places API มีฟีเจอร์เติมข้อความอัตโนมัติที่คุณสามารถใช้เพื่อทำให้แอปพลิเคชันมีลักษณะการค้นหาแบบพิมพ์ล่วงหน้าของช่องค้นหา Google Maps เมื่อผู้ใช้เริ่มพิมพ์ที่อยู่ ระบบจะป้อนข้อความที่เหลือให้โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบฟีเจอร์เติมข้อความอัตโนมัติ
เริ่มต้นใช้งาน
หากคุณไม่คุ้นเคยกับ Maps JavaScript API หรือ JavaScript เราขอแนะนำให้อ่านเกี่ยวกับ JavaScript และรับคีย์ API ก่อนเริ่มต้นใช้งาน
กำลังโหลดคลัง
บริการ Places เป็นไลบรารีแบบสแตนด์อโลนแยกจากโค้ด Maps JavaScript API หลัก หากต้องการใช้ฟังก์ชันที่อยู่ในไลบรารีนี้ คุณต้องโหลดไลบรารีก่อนโดยใช้พารามิเตอร์ libraries
ใน URL บูตสตรีปของ Maps API ดังนี้
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>
ดูข้อมูลเพิ่มเติมได้ที่ ภาพรวมของไลบรารี
เพิ่ม Places API ลงในรายการข้อจํากัด API ของคีย์ API
การใช้การจํากัด API กับคีย์จะจํากัดการใช้งานคีย์ API สําหรับ API หรือ SDK อย่างน้อย 1 รายการ ระบบจะประมวลผลคําขอที่ส่งไปยัง API หรือ SDK ที่เชื่อมโยงกับคีย์ API คำขอที่ส่งไปยัง API หรือ SDK ที่ไม่ได้เชื่อมโยงกับคีย์ API จะดำเนินการไม่สำเร็จ วิธีจํากัดคีย์ API เพื่อใช้กับ Places Library, Maps JavaScript API- ไปที่คอนโซล Google Cloud
- คลิกเมนูแบบเลื่อนลงของโปรเจ็กต์ แล้วเลือกโปรเจ็กต์ที่มีคีย์ API ที่ต้องการรักษาความปลอดภัย
- คลิกปุ่มเมนู
แล้วเลือก Google Maps Platform > ข้อมูลเข้าสู่ระบบ
- ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกชื่อคีย์ API ที่ต้องการรักษาความปลอดภัย
- ในหน้าจํากัดและเปลี่ยนชื่อคีย์ API ให้ตั้งค่าข้อจํากัด
- ข้อจำกัด API
- เลือกจํากัดคีย์
- คลิกเลือก API แล้วเลือกทั้ง Maps JavaScript API และ Places API
(หาก API ใด API หนึ่งไม่แสดงในรายการ คุณต้องเปิดใช้ API นั้น)
- คลิกบันทึก
ขีดจำกัดการใช้งานและนโยบาย
โควต้า
คลัง Places จะใช้โควต้าการใช้งานร่วมกับ Places API ตามที่อธิบายไว้ในเอกสารประกอบเกี่ยวกับขีดจํากัดการใช้งานของ Places API
นโยบาย
การใช้ Places Library, Maps JavaScript API ต้องเป็นไปตามนโยบายที่อธิบายไว้สำหรับ Places API
การค้นหาสถานที่
บริการสถานที่ช่วยให้คุณทำการค้นหาประเภทต่อไปนี้ได้
- ค้นหาสถานที่จากข้อความค้นหา แสดงสถานที่ตามข้อความค้นหา (เช่น ชื่อหรือที่อยู่ของสถานที่)
- ค้นหาสถานที่จากหมายเลขโทรศัพท์แสดงสถานที่ตามหมายเลขโทรศัพท์
- การค้นหาในพื้นที่ แสดงรายการสถานที่ใกล้เคียงตามสถานที่ตั้งของผู้ใช้
- การค้นหาข้อความ แสดงรายการสถานที่ใกล้เคียงตามสตริงการค้นหา เช่น "Pizza"
- คำขอรายละเอียดสถานที่จะแสดงข้อมูลที่ละเอียดยิ่งขึ้นเกี่ยวกับสถานที่หนึ่งๆ ซึ่งรวมถึงรีวิวจากผู้ใช้
ข้อมูลที่แสดงผลอาจรวมถึงสถานที่ตั้ง เช่น ร้านอาหาร ร้านค้า และสำนักงาน ตลอดจนผลการค้นหา "พิกัดภูมิศาสตร์" ซึ่งระบุที่อยู่ เขตการปกครอง เช่น เมืองและอำเภอ และจุดที่น่าสนใจอื่นๆ
คำขอค้นหาสถานที่
คำขอค้นหาสถานที่ช่วยให้คุณค้นหาสถานที่ได้โดยใช้ข้อความค้นหาหรือหมายเลขโทรศัพท์ คำขอค้นหาสถานที่มี 2 ประเภท ได้แก่
ค้นหาสถานที่จากการค้นหา
ค้นหาสถานที่จากข้อความจะรับอินพุตข้อความและแสดงสถานที่ อินพุตอาจเป็นข้อมูลสถานที่ประเภทใดก็ได้ เช่น ชื่อหรือที่อยู่ธุรกิจ หากต้องการส่งคำขอค้นหาสถานที่จากคำค้นหา ให้เรียกใช้เมธอด findPlaceFromQuery()
ของ PlacesService
ซึ่งใช้พารามิเตอร์ต่อไปนี้
query
(ต้องระบุ) สตริงข้อความที่จะค้นหา เช่น "restaurant" หรือ "123 Main Street" ต้องเป็นชื่อสถานที่ ที่อยู่ หรือหมวดหมู่ของสถานประกอบการ อินพุตประเภทอื่นๆ อาจทำให้เกิดข้อผิดพลาดและไม่มีการรับประกันว่าจะแสดงผลลัพธ์ที่ถูกต้อง Places API จะแสดงรายการที่ตรงกันตามสตริงนี้และจัดเรียงผลลัพธ์ตามความเกี่ยวข้องที่รับรู้fields
(ต้องระบุ) ฟิลด์อย่างน้อย 1 ฟิลด์ที่ระบุประเภทข้อมูลสถานที่ที่จะแสดงlocationBias
(ไม่บังคับ) พิกัดที่กําหนดพื้นที่ที่จะค้นหา ซึ่งอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้- ชุดพิกัดละติจูด/ลองจิจูดที่ระบุเป็น LatLngLiteral หรือออบเจ็กต์ LatLng
- ขอบเขตสี่เหลี่ยมผืนผ้า (คู่ละติจูด/ลองจิจูด 2 คู่ หรือออบเจ็กต์ LatLngBounds)
- รัศมี (เป็นเมตร) ที่กึ่งกลางอยู่ที่ละติจูด/ลองจิจูด
นอกจากนี้ คุณยังต้องส่งเมธอด Callback ไปยัง findPlaceFromQuery()
เพื่อจัดการออบเจ็กต์ผลลัพธ์และคำตอบของ google.maps.places.PlacesServiceStatus
ด้วย
ตัวอย่างต่อไปนี้แสดงการเรียกใช้ findPlaceFromQuery()
โดยค้นหา "Museum of Contemporary Art Australia" และรวมช่อง name
และ geometry
var map; var service; var infowindow; function initMap() { var sydney = new google.maps.LatLng(-33.867, 151.195); infowindow = new google.maps.InfoWindow(); map = new google.maps.Map( document.getElementById('map'), {center: sydney, zoom: 15}); var request = { query: 'Museum of Contemporary Art Australia', fields: ['name', 'geometry'], }; var service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery(request, function(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } map.setCenter(results[0].geometry.location); } }); }
ค้นหาสถานที่จากหมายเลขโทรศัพท์
ค้นหาสถานที่จากหมายเลขโทรศัพท์จะรับหมายเลขโทรศัพท์และแสดงสถานที่ หากต้องการส่งคําขอค้นหาสถานที่จากหมายเลขโทรศัพท์ ให้เรียกใช้เมธอด findPlaceFromPhoneNumber()
ของ PlacesService
ซึ่งใช้พารามิเตอร์ต่อไปนี้
phoneNumber
(ต้องระบุ) หมายเลขโทรศัพท์ในรูปแบบ E.164fields
(ต้องระบุ) ฟิลด์อย่างน้อย 1 ฟิลด์ที่ระบุประเภทข้อมูลสถานที่ที่จะแสดงlocationBias
(ไม่บังคับ) พิกัดที่กําหนดพื้นที่ที่จะค้นหา ซึ่งอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้- ชุดพิกัดละติจูด/ลองจิจูดที่ระบุเป็น LatLngLiteral หรือออบเจ็กต์ LatLng
- ขอบเขตสี่เหลี่ยมผืนผ้า (จุดละติจูด/ลองจิจูด 4 จุด หรือออบเจ็กต์ LatLngBounds)
- รัศมี (เป็นเมตร) ที่กึ่งกลางอยู่ที่ละติจูด/ลองจิจูด
นอกจากนี้ คุณยังต้องส่งเมธอด Callback ไปยัง findPlaceFromPhoneNumber()
เพื่อจัดการออบเจ็กต์ผลลัพธ์และคำตอบของ google.maps.places.PlacesServiceStatus
ด้วย
ฟิลด์ (วิธีการค้นหาสถานที่)
ใช้พารามิเตอร์ fields
เพื่อระบุอาร์เรย์ประเภทข้อมูลสถานที่ที่จะแสดงผล
เช่น fields: ['formatted_address', 'opening_hours', 'geometry']
ใช้จุดเมื่อระบุค่าคอมโพเนนต์ เช่น opening_hours.weekday_text
ช่องต่างๆ สอดคล้องกับผลการค้นหาของ Place Search และแบ่งออกเป็น 3 หมวดหมู่การเรียกเก็บเงิน ได้แก่ พื้นฐาน รายชื่อติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินสำหรับช่องพื้นฐานในราคาฐานและไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสำหรับช่อง "รายชื่อติดต่อ" และ "บรรยากาศ" ในอัตราที่สูงขึ้น ดูข้อมูลเพิ่มเติมได้ที่ชีตราคา ระบบจะแสดงการระบุแหล่งที่มา (html_attributions
) ทุกครั้งที่มีการเรียกใช้ ไม่ว่าจะมีการขอฟิลด์หรือไม่ก็ตาม
พื้นฐาน
หมวดหมู่พื้นฐานประกอบด้วยช่องต่อไปนี้
business_status
, formatted_address
, geometry
,
icon
,icon_mask_base_uri
, icon_background_color
,
name
, permanently_closed
(เลิกใช้งานแล้ว),
photos
, place_id
, plus_code
, types
การติดต่อ
หมวดหมู่ "รายชื่อติดต่อ" มีช่องต่อไปนี้opening_hours
(เลิกใช้งานแล้ว ในไลบรารีสถานที่ของ Maps JavaScript API ใช้คำขอรายละเอียดสถานที่เพื่อรับผลการค้นหา
opening_hours
)
บรรยากาศ
หมวดหมู่บรรยากาศประกอบด้วยช่องต่อไปนี้price_level
, rating
, user_ratings_total
วิธีการ findPlaceFromQuery()
และ findPlaceFromPhoneNumber()
แต่ละรายการใช้ชุดช่องเดียวกัน และสามารถแสดงผลช่องเดียวกันในการตอบกลับที่เกี่ยวข้อง
ตั้งค่าความลำเอียงของตำแหน่ง (วิธีการค้นหาสถานที่)
ใช้พารามิเตอร์ locationBias
เพื่อทําให้ฟีเจอร์ค้นหาสถานที่แสดงผลการค้นหาในพื้นที่หนึ่งๆ คุณตั้งค่า locationBias
ได้ดังนี้
ปรับผลการค้นหาให้เหมาะกับพื้นที่หนึ่งๆ
locationBias: {lat: 37.402105, lng: -122.081974}
กำหนดพื้นที่สี่เหลี่ยมผืนผ้าที่จะค้นหาโดยทำดังนี้
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
คุณยังใช้ LatLngBounds ได้ด้วย
กําหนดรัศมีที่จะค้นหา (เป็นเมตร) โดยกําหนดจุดศูนย์กลางเป็นพื้นที่ที่ต้องการ
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
คำขอการค้นหาในบริเวณใกล้เคียง
การค้นหาใกล้เคียงช่วยให้คุณค้นหาสถานที่ภายในพื้นที่ที่ระบุได้โดยใช้คีย์เวิร์ดหรือประเภท การค้นหาใกล้เคียงต้องมีสถานที่ตั้งเสมอ ซึ่งระบุได้ 2 วิธีดังนี้
- ก
LatLngBounds
- พื้นที่วงกลมที่กําหนดเป็นชุดค่าผสมของพร็อพเพอร์ตี้
location
ซึ่งระบุจุดศูนย์กลางของวงกลมเป็นออบเจ็กต์LatLng
และรัศมีที่วัดเป็นเมตร
การค้นหาสถานที่ใกล้เคียงจะเริ่มต้นด้วยการเรียกใช้เมธอด nearbySearch()
ของ
PlacesService
ซึ่งจะแสดงผลอาร์เรย์ของออบเจ็กต์
PlaceResult
โปรดทราบว่าวิธีการ nearbySearch()
จะแทนที่วิธีการ search()
ในเวอร์ชัน 3.9
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
วิธีการนี้จะรับคําขอที่มีช่องต่อไปนี้
- โดยทำอย่างใดอย่างหนึ่งต่อไปนี้
bounds
ซึ่งต้องเป็นออบเจ็กต์google.maps.LatLngBounds
ที่กําหนดพื้นที่การค้นหาสี่เหลี่ยมผืนผ้า ระยะทางตามแนวทแยงสูงสุดที่รองรับสำหรับขอบเขตพื้นที่คือประมาณ 100,000 เมตรlocation
และradius
โดยที่location
จะรับออบเจ็กต์google.maps.LatLng
ส่วนradius
จะรับจำนวนเต็มธรรมดา ซึ่งแสดงรัศมีของวงกลมเป็นเมตร รัศมีสูงสุดที่อนุญาตคือ 50,000 เมตร โปรดทราบว่าเมื่อตั้งค่าrankBy
เป็น DISTANCE คุณต้องระบุlocation
แต่ไม่สามารถระบุradius
หรือbounds
keyword
(ไม่บังคับ) — คำที่จะจับคู่กับช่องที่มีทั้งหมด ซึ่งรวมถึงแต่ไม่จำกัดเพียงชื่อ ประเภท และที่อยู่ รวมถึงรีวิวของลูกค้าและเนื้อหาอื่นๆ ของบุคคลที่สามminPriceLevel
และmaxPriceLevel
(ไม่บังคับ) — จำกัดผลการค้นหาให้แสดงเฉพาะสถานที่ที่อยู่ในช่วงที่ระบุเท่านั้น ค่าที่ใช้ได้อยู่ในช่วง 0 (ราคาไม่แพงที่สุด) ถึง 4 (ราคาแพงที่สุด)name
เลิกใช้งานแล้ว เทียบเท่ากับkeyword
ระบบจะรวมค่าในช่องนี้เข้ากับค่าในช่องkeyword
และส่งค่าดังกล่าวเป็นส่วนหนึ่งของสตริงการค้นหาเดียวกันopenNow
(ไม่บังคับ) — ค่าบูลีน ซึ่งบ่งบอกว่าบริการ Places ควรแสดงเฉพาะสถานที่ที่เปิดทําธุรกิจ ณ เวลาส่งการค้นหา ระบบจะไม่แสดงสถานที่ที่ไม่ได้ระบุเวลาทำการในฐานข้อมูล Google Places หากคุณรวมพารามิเตอร์นี้ไว้ในข้อความค้นหา การตั้งค่าopenNow
เป็นfalse
จะไม่มีผลrankBy
(ไม่บังคับ) — ระบุลําดับที่แสดงผลลัพธ์ ค่าที่เป็นไปได้มีดังนี้google.maps.places.RankBy.PROMINENCE
(ค่าเริ่มต้น) ตัวเลือกนี้จะจัดเรียงผลการค้นหาตามความสำคัญ การจัดอันดับจะให้ความสำคัญกับสถานที่ที่โดดเด่นภายในรัศมีที่กำหนดมากกว่าสถานที่ใกล้เคียงที่ตรงกันแต่โดดเด่นน้อยกว่า ความโดดเด่นอาจได้รับผลกระทบจากอันดับของสถานที่ในดัชนีของ Google, ความนิยมทั่วโลก และปัจจัยอื่นๆ เมื่อระบุgoogle.maps.places.RankBy.PROMINENCE
จะต้องระบุพารามิเตอร์radius
ด้วยgoogle.maps.places.RankBy.DISTANCE
ตัวเลือกนี้จะจัดเรียงผลลัพธ์จากน้อยไปมากตามระยะทางจากlocation
ที่ระบุ (ต้องระบุ) โปรดทราบว่าคุณจะระบุbounds
และ/หรือradius
ที่กำหนดเองไม่ได้หากระบุRankBy.DISTANCE
เมื่อคุณระบุRankBy.DISTANCE
คุณต้องระบุkeyword
,name
หรือtype
อย่างน้อย 1 รายการ
type
— จำกัดผลการค้นหาให้แสดงเฉพาะสถานที่ที่ตรงกับประเภทที่ระบุ ระบุได้เพียงประเภทเดียว (หากระบุมากกว่า 1 ประเภท ระบบจะละเว้นประเภททั้งหมดที่อยู่หลังรายการแรก) ดูรายการประเภทที่รองรับ
นอกจากนี้ คุณยังต้องส่งเมธอด Callback ไปยัง nearbySearch()
เพื่อจัดการออบเจ็กต์ผลลัพธ์และการตอบกลับของ google.maps.places.PlacesServiceStatus
ด้วย
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, type: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
คำขอการค้นหาข้อความ
บริการค้นหาข้อความของ Google Places เป็นเว็บเซอร์วิสที่แสดงข้อมูลเกี่ยวกับชุดสถานที่ตามสตริง เช่น "พิซซ่าในนิวยอร์ก" หรือ "ร้านรองเท้าใกล้กับออตตาวา" บริการจะตอบกลับด้วยรายการสถานที่ที่ตรงกับสตริงข้อความและค่ากำหนดตำแหน่งที่ตั้งที่ตั้งไว้ การตอบกลับการค้นหาจะมีรายการสถานที่ คุณสามารถส่งคำขอรายละเอียดสถานที่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับสถานที่ใดก็ได้ในการตอบกลับ
การค้นหาข้อความจะเริ่มต้นด้วยการเรียกใช้เมธอด textSearch()
ของ PlacesService
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
วิธีการนี้จะรับคําขอที่มีช่องต่อไปนี้
query
(ต้องระบุ) สตริงข้อความที่จะค้นหา เช่น "restaurant" หรือ "123 Main Street" ต้องเป็นชื่อ ที่อยู่ หรือหมวดหมู่ของสถานที่ตั้ง อินพุตประเภทอื่นๆ อาจทำให้เกิดข้อผิดพลาดและไม่มีการรับประกันว่าจะแสดงผลลัพธ์ที่ถูกต้อง บริการ Places จะแสดงรายการที่ตรงกันโดยอิงตามสตริงนี้และจัดเรียงผลลัพธ์ตามความเกี่ยวข้องที่รับรู้ พารามิเตอร์นี้จะกลายเป็นไม่บังคับหากมีการใช้พารามิเตอร์type
ในคำขอค้นหาด้วย- ไม่บังคับ
openNow
— ค่าบูลีน ซึ่งระบุว่าบริการ Places ควรแสดงเฉพาะสถานที่ที่เปิดทําธุรกิจอยู่ ณ เวลาที่มีการส่งการค้นหา ระบบจะไม่แสดงสถานที่ที่ไม่ได้ระบุเวลาทำการในฐานข้อมูล Google Places หากคุณรวมพารามิเตอร์นี้ไว้ในข้อความค้นหา การตั้งค่าopenNow
เป็นfalse
จะไม่มีผลminPriceLevel
และmaxPriceLevel
- จำกัดผลการค้นหาให้แสดงเฉพาะสถานที่ที่อยู่ในระดับราคาที่ระบุเท่านั้น ค่าที่ใช้ได้อยู่ในช่วงตั้งแต่ 0 (ราคาไม่แพงที่สุด) ถึง 4 (ราคาแพงที่สุด)- อย่างใดอย่างหนึ่งต่อไปนี้
bounds
ซึ่งต้องเป็นออบเจ็กต์google.maps.LatLngBounds
ที่กําหนดพื้นที่การค้นหาสี่เหลี่ยมผืนผ้า ระยะทางตามแนวทแยงสูงสุดที่รองรับสำหรับพื้นที่ขอบเขตคือประมาณ 100,000 เมตรlocation
และradius
- คุณอาจทำให้ผลลัพธ์เอนเอียงไปยังวงกลมที่ระบุได้โดยการส่งพารามิเตอร์location
และradius
ซึ่งจะสั่งให้บริการ Places แสดงผลการค้นหาภายในวงกลมนั้น ผลการค้นหาที่อยู่นอกพื้นที่ที่กําหนดอาจยังแสดงอยู่ ตำแหน่งใช้ออบเจ็กต์google.maps.LatLng
และรัศมีใช้จำนวนเต็มธรรมดา ซึ่งแสดงรัศมีของวงกลมเป็นเมตร รัศมีสูงสุดที่อนุญาตคือ 50,000 เมตร
type
— จำกัดผลการค้นหาให้แสดงเฉพาะสถานที่ที่ตรงกับประเภทที่ระบุ ระบุได้เพียงประเภทเดียว (หากระบุมากกว่า 1 ประเภท ระบบจะไม่สนใจประเภททั้งหมดที่อยู่หลังรายการแรก) ดูรายการประเภทที่รองรับ
นอกจากนี้ คุณยังต้องส่งเมธอด Callback ไปยัง textSearch()
เพื่อจัดการออบเจ็กต์ผลลัพธ์และการตอบกลับ google.maps.places.PlacesServiceStatus
ด้วย
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, query: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } }
การตอบกลับการค้นหา
รหัสสถานะ
ออบเจ็กต์คำตอบ PlacesServiceStatus
มีสถานะของคำขอ และอาจมีข้อมูลการแก้ไขข้อบกพร่องเพื่อช่วยคุณติดตามสาเหตุที่คำขอสถานที่ไม่สำเร็จ ค่าสถานะที่เป็นไปได้มีดังนี้
INVALID_REQUEST
: คำขอนี้ไม่ถูกต้องOK
: การตอบกลับมีผลลัพธ์ที่ถูกต้องOVER_QUERY_LIMIT
: หน้าเว็บมีคำขอเกินโควต้าREQUEST_DENIED
: หน้าเว็บไม่ได้รับอนุญาตให้ใช้ PlacesServiceUNKNOWN_ERROR
: ประมวลผลคําขอ PlacesService ไม่ได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้งZERO_RESULTS
: ไม่พบผลการค้นหาสำหรับคำขอนี้
ผลการค้นหาสถานที่
ฟังก์ชัน findPlace()
, nearbySearch()
และ textSearch()
จะแสดงผลอาร์เรย์ของออบเจ็กต์
PlaceResult
ออบเจ็กต์ PlaceResult
แต่ละรายการอาจมีพร็อพเพอร์ตี้ต่อไปนี้
business_status
ระบุสถานะการทํางานของสถานที่ หากเป็นธุรกิจ โดยอาจมีค่าใดค่าหนึ่งต่อไปนี้OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
formatted_address
คือสตริงที่มีที่อยู่ของสถานที่นี้ซึ่งมนุษย์อ่านได้ ระบบจะแสดงพร็อพเพอร์ตี้formatted_address
สำหรับการค้นหาข้อความเท่านั้นที่อยู่นี้มักจะเทียบเท่ากับที่อยู่ไปรษณีย์ โปรดทราบว่าบางประเทศ เช่น สหราชอาณาจักร ไม่อนุญาตให้เผยแพร่ที่อยู่ไปรษณีย์จริงเนื่องจากข้อจำกัดด้านใบอนุญาต
ที่อยู่ที่มีการจัดรูปแบบประกอบด้วยองค์ประกอบที่อยู่อย่างน้อย 1 รายการ เช่น ที่อยู่ที่ "111 8th Avenue, New York, NY" ประกอบด้วยองค์ประกอบต่อไปนี้ "111" (เลขที่) "8th Avenue" (ถนน) "New York" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)
อย่าแยกวิเคราะห์ที่อยู่ที่มีการจัดรูปแบบแบบเป็นโปรแกรม แต่คุณควรใช้องค์ประกอบที่อยู่แต่ละรายการแทน ซึ่งคำตอบของ API จะรวมไว้นอกเหนือจากช่องที่อยู่ที่มีการจัดรูปแบบแล้ว
geometry
: ข้อมูลเกี่ยวกับเรขาคณิตของสถานที่ ซึ่งรวมถึงข้อมูลต่อไปนี้location
ระบุละติจูดและลองจิจูดของสถานที่viewport
กำหนดวิวพอร์ตที่ต้องการบนแผนที่เมื่อดูสถานที่นี้
permanently_closed
(เลิกใช้งานแล้ว) คือธงบูลีนที่ระบุว่าสถานที่ปิดกิจการถาวรหรือชั่วคราว (ค่าtrue
) อย่าใช้permanently_closed
แต่ให้ใช้business_status
instead เพื่อดูสถานะการทํางานของธุรกิจplus_code
(ดูOpen Location Code และ Plus Codes) เป็นข้อมูลอ้างอิงตำแหน่งที่เข้ารหัสซึ่งมาจากพิกัดละติจูดและลองจิจูดที่แสดงถึงพื้นที่ 1/8000 องศาคูณ 1/8000 องศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่านั้น คุณสามารถใช้ Plus Codes แทนที่อยู่ซึ่งไม่มีอยู่ (ในกรณีที่ไม่มีเลขที่อาคารหรือไม่มีชื่อถนน)Plus Code มีรูปแบบเป็นรหัสสากลและรหัสประกอบ ดังนี้
global_code
คือรหัสพื้นที่ 4 อักขระและรหัสท้องถิ่น 6 อักขระขึ้นไป (849VCWC8+R9)compound_code
คือรหัสท้องถิ่นที่มีความยาวตั้งแต่ 6 อักขระขึ้นไปพร้อมตำแหน่งที่ชัดเจน (CWC8+R9, Mountain View, CA, USA) อย่าแยกวิเคราะห์เนื้อหานี้แบบเป็นโปรแกรม
html_attributions
: อาร์เรย์ของการระบุแหล่งที่มาที่คุณควรแสดงเมื่อแสดงผลการค้นหา แต่ละรายการในอาร์เรย์จะมีข้อความ HTML สำหรับการระบุแหล่งที่มารายการเดียว หมายเหตุ: ข้อมูลนี้เป็นการรวมแหล่งที่มาทั้งหมดของผลการค้นหาทั้งหมด ดังนั้นออบเจ็กต์PlaceResult
ทั้งหมดในการตอบกลับจึงมีรายการการระบุแหล่งที่มาที่เหมือนกันicon
จะแสดงผล URL ของไอคอน PNG ขนาด 71 x 71 พิกเซลที่มีสีicon_mask_base_uri
จะแสดงผล URL พื้นฐานสําหรับไอคอนที่ไม่มีสี โดยลบส่วนขยาย .svg หรือ .pngicon_background_color
จะแสดงรหัสสี HEX เริ่มต้นสำหรับหมวดหมู่ของสถานที่name
: ชื่อสถานที่opening_hours
อาจมีข้อมูลต่อไปนี้open_now
คือค่าบูลีนที่ระบุว่าสถานที่เปิดอยู่หรือไม่ ณ เวลาปัจจุบัน (เลิกใช้งานแล้วใน Places Library, Maps JavaScript API ให้ใช้utc_offset_minutes
แทน)
place_id
คือตัวระบุที่เป็นข้อความซึ่งระบุสถานที่อย่างเจาะจง หากต้องการเรียกข้อมูลเกี่ยวกับสถานที่ ให้ส่งตัวระบุนี้ในคำขอรายละเอียดสถานที่ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีอ้างอิงสถานที่ด้วยรหัสสถานที่rating
มีคะแนนของสถานที่ตั้งแต่ 0.0 ถึง 5.0 โดยอิงตามรีวิวของผู้ใช้ที่รวบรวมtypes
อาร์เรย์ของประเภทสำหรับสถานที่นี้ (เช่น["political", "locality"]
หรือ["restaurant", "lodging"]
) อาร์เรย์นี้อาจมีหลายค่าหรืออาจว่างเปล่า เราอาจเปิดตัวค่าใหม่โดยไม่แจ้งให้ทราบล่วงหน้า ดูรายการประเภทที่รองรับvicinity
: ที่อยู่แบบย่อของสถานที่ ซึ่งรวมถึงชื่อถนน เลขที่ และสถานที่ตั้ง แต่ไม่มีจังหวัด/รัฐ รหัสไปรษณีย์ หรือประเทศ เช่น สำนักงานของ Google ในซิดนีย์ ออสเตรเลียมีค่าvicinity
เป็น5/48 Pirrama Road, Pyrmont
การเข้าถึงผลการค้นหาเพิ่มเติม
โดยค่าเริ่มต้น การค้นหาสถานที่แต่ละครั้งจะแสดงผลการค้นหาสูงสุด 20 รายการต่อคำค้นหา อย่างไรก็ตาม การค้นหาแต่ละครั้งจะแสดงผลลัพธ์ได้สูงสุด 60 รายการ โดยแบ่งออกเป็น 3 หน้า
หน้าอื่นๆ มีอยู่ในออบเจ็กต์ PlaceSearchPagination
หากต้องการเข้าถึงหน้าเว็บเพิ่มเติม คุณต้องบันทึกออบเจ็กต์ PlaceSearchPagination
ผ่านฟังก์ชันการเรียกกลับ ออบเจ็กต์ PlaceSearchPagination
ได้รับการกําหนดดังนี้
hasNextPage
พร็อพเพอร์ตี้บูลีนที่ระบุว่ามีผลการค้นหาเพิ่มเติมหรือไม่true
เมื่อมีหน้าผลการค้นหาเพิ่มเติมnextPage()
ฟังก์ชันที่จะแสดงผลลัพธ์ชุดถัดไป หลังจากทำการค้นหาแล้ว คุณต้องรอ 2 วินาทีจึงจะเห็นผลการค้นหาหน้าถัดไป
หากต้องการดูชุดผลลัพธ์ถัดไป ให้โทรหา nextPage
ผลการค้นหาแต่ละหน้าต้องแสดงก่อนจึงจะแสดงผลการค้นหาหน้าถัดไปได้ โปรดทราบว่าการค้นหาแต่ละครั้งจะนับเป็นคําขอเดียวตามขีดจํากัดการใช้งาน
ตัวอย่างด้านล่างแสดงวิธีแก้ไขฟังก์ชัน Callback เพื่อบันทึกออบเจ็กต์ PlaceSearchPagination
เพื่อให้คุณส่งคำขอค้นหาได้หลายรายการ
TypeScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap(): void { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", } as google.maps.MapOptions ); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage: () => void | false; const moreButton = document.getElementById("more") as HTMLButtonElement; moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, ( results: google.maps.places.PlaceResult[] | null, status: google.maps.places.PlacesServiceStatus, pagination: google.maps.places.PlaceSearchPagination | null ) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } } ); } function addPlaces( places: google.maps.places.PlaceResult[], map: google.maps.Map ) { const placesList = document.getElementById("places") as HTMLElement; for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon!, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name!, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name!; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry!.location!); }); } } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap() { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map(document.getElementById("map"), { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", }); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage; const moreButton = document.getElementById("more"); moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, (results, status, pagination) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } }, ); } function addPlaces(places, map) { const placesList = document.getElementById("places"); for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry.location); }); } } } window.initMap = initMap;
ลองใช้ตัวอย่าง
รายละเอียดสถานที่
นอกจากแสดงรายการสถานที่ภายในพื้นที่แล้ว บริการ Places ยังแสดงข้อมูลโดยละเอียดเกี่ยวกับสถานที่หนึ่งๆ ได้ด้วย เมื่อระบบแสดงสถานที่ในการตอบกลับการค้นหาสถานที่แล้ว คุณสามารถใช้รหัสสถานที่เพื่อขอรายละเอียดเพิ่มเติมเกี่ยวกับสถานที่นั้น เช่น ที่อยู่แบบเต็ม หมายเลขโทรศัพท์ คะแนนและรีวิวของผู้ใช้ เป็นต้น
คำขอรายละเอียดสถานที่
ระบบจะขอรายละเอียดสถานที่ด้วยการเรียกใช้เมธอด getDetails()
ของบริการ
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
เมธอดนี้จะรับคําขอที่มี placeId
ของสถานที่ที่ต้องการ และช่องที่ระบุประเภทข้อมูลสถานที่ที่จะแสดง ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีอ้างอิงสถานที่ด้วยรหัสสถานที่
นอกจากนี้ยังใช้เมธอดการเรียกกลับ ซึ่งต้องจัดการรหัสสถานะที่ส่งมาในคําตอบ google.maps.places.PlacesServiceStatus
รวมถึงออบเจ็กต์ google.maps.places.PlaceResult
ด้วย
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
ฟิลด์ (รายละเอียดสถานที่)
พารามิเตอร์fields
ใช้อาร์เรย์สตริง (ชื่อฟิลด์)
ใช้พารามิเตอร์ fields
เพื่อระบุอาร์เรย์ประเภทข้อมูลสถานที่ที่จะแสดงผล
เช่น fields: ['address_components', 'opening_hours', 'geometry']
ใช้จุดเมื่อระบุค่าคอมโพเนนต์ เช่น opening_hours.weekday_text
ช่องต่างๆ สอดคล้องกับผลการค้นหารายละเอียดสถานที่ และแบ่งออกเป็น 3 หมวดหมู่การเรียกเก็บเงิน ได้แก่ พื้นฐาน รายชื่อติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินสำหรับช่องพื้นฐานในราคาฐานและไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสำหรับฟิลด์รายชื่อติดต่อและบรรยากาศในอัตราที่สูงขึ้น ดูข้อมูลเพิ่มเติมได้ที่ชีตราคา ระบบจะแสดงการระบุแหล่งที่มา (html_attributions
) ทุกครั้งที่มีการเรียกใช้ ไม่ว่าจะมีการขอหรือไม่ก็ตาม
พื้นฐาน
หมวดหมู่พื้นฐานประกอบด้วยช่องต่อไปนี้
address_components
, adr_address
, business_status
,
formatted_address
, geometry
, icon
,
icon_mask_base_uri
, icon_background_color
,name
,
permanently_closed
(เลิกใช้งานแล้ว),
photo
, place_id
, plus_code
, type
,
url
, utc_offset
(เลิกใช้งานแล้ว
ใน Places Library, Maps JavaScript API), utc_offset_minutes
,
vicinity
การติดต่อ
หมวดหมู่ "ข้อมูลติดต่อ" มีช่องต่อไปนี้
formatted_phone_number
, international_phone_number
,
opening_hours
, website
บรรยากาศ
หมวดหมู่บรรยากาศประกอบด้วยช่องต่อไปนี้
price_level
, rating
, reviews
,
user_ratings_total
ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องสถานที่ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเรียกเก็บเงินคำขอข้อมูลสถานที่ได้ที่การใช้งานและการเรียกเก็บเงิน
คำตอบเกี่ยวกับรายละเอียดสถานที่
รหัสสถานะ
ออบเจ็กต์การตอบกลับ PlacesServiceStatus
มีสถานะของคำขอ และอาจมีข้อมูลการแก้ไขข้อบกพร่องเพื่อช่วยคุณติดตามสาเหตุที่คำขอรายละเอียดสถานที่ไม่สำเร็จ ค่าสถานะที่เป็นไปได้มีดังนี้
INVALID_REQUEST
: คำขอนี้ไม่ถูกต้องOK
: การตอบกลับมีผลลัพธ์ที่ถูกต้องOVER_QUERY_LIMIT
: หน้าเว็บมีคำขอเกินโควต้าNOT_FOUND
ไม่พบสถานที่อ้างอิงในฐานข้อมูลสถานที่REQUEST_DENIED
: หน้าเว็บไม่ได้รับอนุญาตให้ใช้ PlacesServiceUNKNOWN_ERROR
: ประมวลผลคําขอ PlacesService ไม่ได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้งZERO_RESULTS
: ไม่พบผลการค้นหาสำหรับคำขอนี้
ผลการค้นหารายละเอียดสถานที่
การเรียกใช้ getDetails()
ที่สำเร็จจะแสดงผลออบเจ็กต์
PlaceResult
ที่มีพร็อพเพอร์ตี้ต่อไปนี้
address_components
: อาร์เรย์ที่มีคอมโพเนนต์แยกต่างหากซึ่งใช้กับที่อยู่นี้ได้โดยทั่วไปแล้วองค์ประกอบที่อยู่แต่ละรายการจะมีช่องต่อไปนี้
types[]
คืออาร์เรย์ที่ระบุประเภทของคอมโพเนนต์ที่อยู่ ดูรายการประเภทที่รองรับlong_name
คือคำอธิบายแบบเต็มหรือชื่อของคอมโพเนนต์ที่อยู่ตามที่ Geocoder แสดงshort_name
คือชื่อแบบย่อของข้อความสำหรับคอมโพเนนต์ที่อยู่ หากมี ตัวอย่างเช่น องค์ประกอบที่อยู่สำหรับรัฐอะแลสกาอาจมีlong_name
เป็น "Alaska" และshort_name
เป็น "AK" โดยใช้ตัวย่อไปรษณีย์ 2 ตัว
โปรดทราบข้อเท็จจริงต่อไปนี้เกี่ยวกับอาร์เรย์
address_components[]
- อาร์เรย์ขององค์ประกอบที่อยู่อาจมีองค์ประกอบมากกว่า
formatted_address
- อาร์เรย์ไม่จำเป็นต้องรวมนิติบุคคลทางการเมืองทั้งหมดที่มีที่อยู่ นอกเหนือจากที่อยู่ที่อยู่ใน
formatted_address
หากต้องการดึงข้อมูลนิติบุคคลทั้งหมดที่มีที่อยู่หนึ่งๆ คุณควรใช้การแปลงพิกัดภูมิศาสตร์ย้อนกลับ โดยส่งละติจูด/ลองจิจูดของที่อยู่เป็นพารามิเตอร์ไปยังคำขอ - เราไม่รับประกันว่ารูปแบบของคำตอบจะเหมือนกันระหว่างคำขอ โดยเฉพาะอย่างยิ่ง จำนวน
address_components
จะแตกต่างกันไปตามที่อยู่ที่มีการขอ และอาจเปลี่ยนแปลงเมื่อเวลาผ่านไปสำหรับที่อยู่เดียวกัน คอมโพเนนต์สามารถเปลี่ยนตำแหน่งในอาร์เรย์ได้ ประเภทของคอมโพเนนต์จะเปลี่ยนแปลงได้ คอมโพเนนต์บางอย่างอาจหายไปในการตอบกลับในภายหลัง
business_status
ระบุสถานะการทํางานของสถานที่ หากเป็นธุรกิจ โดยอาจมีค่าใดค่าหนึ่งต่อไปนี้OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
formatted_address
: ที่อยู่ของสถานที่นี้ที่มนุษย์อ่านได้ที่อยู่นี้มักจะเทียบเท่ากับที่อยู่ไปรษณีย์ โปรดทราบว่าบางประเทศ เช่น สหราชอาณาจักร ไม่อนุญาตให้เผยแพร่ที่อยู่ไปรษณีย์จริงเนื่องจากข้อจำกัดด้านใบอนุญาต
ที่อยู่ที่มีการจัดรูปแบบประกอบด้วยองค์ประกอบที่อยู่อย่างน้อย 1 รายการ เช่น ที่อยู่ที่ "111 8th Avenue, New York, NY" ประกอบด้วยองค์ประกอบต่อไปนี้ "111" (เลขที่) "8th Avenue" (ถนน) "New York" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)
อย่าแยกวิเคราะห์ที่อยู่ที่มีการจัดรูปแบบแบบเป็นโปรแกรม แต่คุณควรใช้องค์ประกอบที่อยู่แต่ละรายการแทน ซึ่งคำตอบของ API จะรวมไว้นอกเหนือจากช่องที่อยู่ที่มีการจัดรูปแบบแล้ว
formatted_phone_number
: หมายเลขโทรศัพท์ของสถานที่ ซึ่งจัดรูปแบบตาม รูปแบบภูมิภาคของหมายเลขgeometry
: ข้อมูลเกี่ยวกับเรขาคณิตของสถานที่ ซึ่งรวมถึงข้อมูลต่อไปนี้location
ระบุละติจูดและลองจิจูดของสถานที่viewport
กำหนดวิวพอร์ตที่ต้องการบนแผนที่เมื่อดูสถานที่นี้
permanently_closed
(เลิกใช้งานแล้ว) คือธงบูลีนที่ระบุว่าสถานที่ปิดกิจการถาวรหรือชั่วคราว (ค่าtrue
) อย่าใช้permanently_closed
แต่ให้ใช้business_status
instead เพื่อดูสถานะการทํางานของธุรกิจplus_code
(ดูOpen Location Code และ Plus Codes) เป็นข้อมูลอ้างอิงตำแหน่งที่เข้ารหัสซึ่งมาจากพิกัดละติจูดและลองจิจูดที่แสดงถึงพื้นที่ 1/8000 องศาคูณ 1/8000 องศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่านั้น คุณสามารถใช้ Plus Codes แทนที่อยู่ซึ่งไม่มีอยู่ (ในกรณีที่ไม่มีเลขที่อาคารหรือไม่มีชื่อถนน)Plus Code มีรูปแบบเป็นรหัสสากลและรหัสประกอบ ดังนี้
global_code
คือรหัสพื้นที่ 4 อักขระและรหัสท้องถิ่น 6 อักขระขึ้นไป (849VCWC8+R9)compound_code
คือรหัสท้องถิ่นที่มีความยาวตั้งแต่ 6 อักขระขึ้นไปพร้อมตำแหน่งที่ชัดเจน (CWC8+R9, Mountain View, CA, USA) อย่าแยกวิเคราะห์เนื้อหานี้แบบเป็นโปรแกรม
html_attributions
: ข้อความระบุแหล่งที่มาที่จะแสดงสำหรับผลการค้นหาสถานที่นี้icon
: URL ไปยังแหล่งข้อมูลรูปภาพที่สามารถใช้เพื่อแสดงประเภทของสถานที่นี้international_phone_number
มีหมายเลขโทรศัพท์ของสถานที่ในรูปแบบระหว่างประเทศ รูปแบบระหว่างประเทศจะมีรหัสประเทศและนำหน้าด้วยเครื่องหมายบวก (+) ตัวอย่างเช่นinternational_phone_number
สำหรับสำนักงานของ Google ในซิดนีย์ ออสเตรเลียคือ+61 2 9374 4000
name
: ชื่อสถานที่utc_offset
เลิกใช้งานแล้ว ในไลบรารี Places, Maps JavaScript API ให้ใช้utc_offset_minutes
แทนutc_offset_minutes
มีจำนวนนาทีที่เขตเวลาปัจจุบันของสถานที่นี้ชดเชยจาก UTC ตัวอย่างเช่น สำหรับสถานที่ในซิดนีย์ ออสเตรเลียในช่วงที่เปลี่ยนเวลาเป็นฤดูร้อน ค่านี้จะเท่ากับ 660 (+11 ชั่วโมงจาก UTC) และสำหรับสถานที่ในแคลิฟอร์เนียที่ไม่ได้เปลี่ยนเวลาเป็นฤดูร้อน ค่านี้จะเท่ากับ -480 (-8 ชั่วโมงจาก UTC)opening_hours
มีข้อมูลต่อไปนี้open_now
(เลิกใช้งานแล้วใน Places Library, Maps JavaScript API ให้ใช้ opening_hours.isOpen() แทน) ดูวิธีใช้isOpen
กับรายละเอียดสถานที่ได้จากวิดีโอนี้) เป็นค่าบูลีนที่ระบุว่าสถานที่เปิดอยู่หรือไม่ ณ เวลาปัจจุบันperiods[]
คืออาร์เรย์ของระยะเวลาเปิดทำการ 7 วัน โดยเริ่มจากวันอาทิตย์ตามลำดับเวลา แต่ละระยะเวลาจะมีข้อมูลต่อไปนี้open
มีออบเจ็กต์วันและเวลา 2 รายการซึ่งอธิบายเวลาเปิดของสถานที่ดังนี้day
ตัวเลข 0-6 ซึ่งสอดคล้องกับวันในสัปดาห์ โดยเริ่มจากวันอาทิตย์ เช่น 2 หมายถึงวันอังคารtime
อาจมีเวลาของวันในรูปแบบ 24 ชั่วโมง hhmm (ค่าอยู่ในช่วง 0000–2359) ระบบจะรายงานtime
ตามเขตเวลาของสถานที่
close
อาจมีออบเจ็กต์วันและเวลา 2 รายการซึ่งอธิบายเวลาที่สถานที่ปิด หมายเหตุ: หากสถานที่เปิดตลอด ส่วนclose
จะหายไปจากคำตอบ แอปพลิเคชันสามารถใช้ค่าเปิดอยู่เสมอซึ่งแสดงเป็นระยะเวลาopen
ที่มีday
ที่มีค่า 0 และtime
ที่มีค่า 0000 และไม่มีclose
weekday_text
คืออาร์เรย์สตริง 7 รายการที่แสดงเวลาทำการที่ฟอร์แมตแล้วสำหรับแต่ละวันในสัปดาห์ หากมีการระบุพารามิเตอร์language
ในคำขอรายละเอียดสถานที่ บริการ Places จะจัดรูปแบบและแปลเวลาทำการเป็นภาษานั้นๆ อย่างเหมาะสม ลําดับขององค์ประกอบในอาร์เรย์นี้ขึ้นอยู่กับพารามิเตอร์language
บางภาษาเริ่มต้นสัปดาห์ที่วันจันทร์ ส่วนบางภาษาเริ่มต้นที่วันอาทิตย์
permanently_closed
(เลิกใช้งานแล้ว) คือธงบูลีนที่ระบุว่าสถานที่ปิดกิจการถาวรหรือชั่วคราว (ค่าtrue
) อย่าใช้permanently_closed
แต่ให้ใช้business_status
instead เพื่อดูสถานะการทํางานของธุรกิจphotos[]
: อาร์เรย์ของออบเจ็กต์PlacePhoto
คุณสามารถใช้PlacePhoto
เพื่อรับรูปภาพด้วยวิธีgetUrl()
หรือจะตรวจสอบวัตถุเพื่อหาค่าต่อไปนี้ก็ได้height
: ความสูงสูงสุดของรูปภาพเป็นพิกเซลwidth
: ความกว้างสูงสุดของรูปภาพในหน่วยพิกเซลhtml_attributions
: ข้อความระบุแหล่งที่มาที่จะแสดงพร้อมกับรูปภาพสถานที่นี้
place_id
: ตัวระบุที่เป็นข้อความซึ่งระบุสถานที่อย่างเจาะจงและสามารถใช้เพื่อดึงข้อมูลเกี่ยวกับสถานที่ผ่านคำขอรายละเอียดสถานที่ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีอ้างอิงสถานที่ด้วยรหัสสถานที่rating
: คะแนนของสถานที่ตั้งแต่ 0.0 ถึง 5.0 โดยอิงตามรีวิวจากผู้ใช้ที่รวบรวมreviews
อาร์เรย์ของรีวิวไม่เกิน 5 รายการ การตรวจสอบแต่ละครั้งประกอบด้วยองค์ประกอบหลายอย่าง ดังนี้aspects[]
มีอาร์เรย์ของออบเจ็กต์PlaceAspectRating
โดยแต่ละรายการจะให้คะแนนแอตทริบิวต์เดียวของสถานประกอบการ ระบบจะถือว่าออบเจ็กต์แรกในอาร์เรย์เป็นแง่มุมหลักPlaceAspectRating
แต่ละรายการมีคำจำกัดความดังนี้type
ชื่อของด้านที่กําลังให้คะแนน ระบบรองรับประเภทต่อไปนี้appeal
,atmosphere
,decor
,facilities
,food
,overall
,quality
และservice
rating
คะแนนของผู้ใช้สำหรับแง่มุมนี้โดยเฉพาะ โดยคะแนนมีตั้งแต่ 0 ถึง 3
author_name
ชื่อผู้ใช้ที่ส่งรีวิว รีวิวที่ไม่ระบุตัวตนจะระบุแหล่งที่มาว่า "ผู้ใช้ Google" หากตั้งค่าพารามิเตอร์ภาษาไว้ วลี "ผู้ใช้ Google" จะแสดงสตริงที่แปลแล้วauthor_url
URL ของโปรไฟล์ Google+ ของผู้ใช้ หากมีlanguage
รหัสภาษา IETF ที่ระบุภาษาที่ใช้ในรีวิวของผู้ใช้ ช่องนี้มีเฉพาะแท็กภาษาหลักเท่านั้น และไม่มีแท็กรองที่ระบุประเทศหรือภูมิภาค เช่น รีวิวภาษาอังกฤษทั้งหมดติดแท็กเป็น "en" ไม่ใช่ "en-AU" หรือ "en-UK" และอื่นๆrating
คะแนนโดยรวมของผู้ใช้สำหรับสถานที่นี้ ตัวเลขนี้เป็นจำนวนเต็มตั้งแต่ 1 ถึง 5text
รีวิวของผู้ใช้ เมื่อรีวิวสถานที่ด้วย Google Places รีวิวแบบข้อความจะถือเป็นตัวเลือก ดังนั้นช่องนี้จึงอาจว่างเปล่า
types
อาร์เรย์ของประเภทสำหรับสถานที่นี้ (เช่น["political", "locality"]
หรือ["restaurant", "lodging"]
) อาร์เรย์นี้อาจมีหลายค่าหรืออาจว่างเปล่า เราอาจเปิดตัวค่าใหม่โดยไม่แจ้งให้ทราบล่วงหน้า ดูรายการประเภทที่รองรับurl
: URL ของหน้าอย่างเป็นทางการของ Google สำหรับสถานที่นี้ หน้านี้เป็นหน้าของ Google ที่มีข้อมูลที่พร้อมใช้งานที่ดีที่สุดเกี่ยวกับสถานที่ แอปพลิเคชันต้องลิงก์หรือฝังหน้านี้ในหน้าจอที่แสดงผลการค้นหาโดยละเอียดเกี่ยวกับสถานที่แก่ผู้ใช้vicinity
: ที่อยู่แบบย่อของสถานที่ ซึ่งรวมถึงชื่อถนน เลขที่ และสถานที่ตั้ง แต่ไม่มีจังหวัด/รัฐ รหัสไปรษณีย์ หรือประเทศ เช่น สำนักงานของ Google ในซิดนีย์ ออสเตรเลียมีค่าvicinity
เป็น5/48 Pirrama Road, Pyrmont
ระบบจะแสดงพร็อพเพอร์ตี้vicinity
เฉพาะสําหรับการค้นหาในพื้นที่เท่านั้นwebsite
แสดงเว็บไซต์ที่เชื่อถือได้ของสถานที่นี้ เช่น หน้าแรกของธุรกิจ
หมายเหตุ: การให้คะแนนแบบหลายมิติอาจไม่พร้อมใช้งานในบางพื้นที่ หากมีรีวิวน้อยเกินไป การตอบกลับแบบละเอียดจะมีคะแนนเดิมในรูปแบบ 0.0 ถึง 5.0 (หากมี) หรือไม่มีคะแนนเลย
การอ้างอิงสถานที่ด้วยรหัสสถานที่
รหัสสถานที่เป็นการอ้างอิงที่ไม่ซ้ำกันสำหรับสถานที่บน Google Maps รหัสสถานที่มีให้บริการสำหรับสถานที่ส่วนใหญ่ รวมถึงธุรกิจ จุดสังเกต สวนสาธารณะ และทางแยก
หากต้องการใช้รหัสสถานที่ในแอป คุณต้องค้นหารหัสก่อน ซึ่งจะอยู่ใน PlaceResult
ของคำขอค้นหาสถานที่หรือรายละเอียด
จากนั้นคุณก็ใช้รหัสสถานที่นี้เพื่อค้นหารายละเอียดสถานที่ได้
รหัสสถานที่ได้รับการยกเว้นจากข้อจำกัดการแคชที่ระบุไว้ในส่วนที่ 3.2.3(ข) ของข้อกำหนดในการให้บริการของ Google Maps Platform คุณจึงจัดเก็บค่ารหัสสถานที่ไว้ใช้ภายหลังได้ ดูแนวทางปฏิบัติแนะนำเมื่อจัดเก็บรหัสสถานที่ได้ที่ภาพรวมรหัสสถานที่
var map; function initialize() { // Create a map centered in Pyrmont, Sydney (Australia). map = new google.maps.Map(document.getElementById('map'), { center: {lat: -33.8666, lng: 151.1958}, zoom: 15 }); // Search for Google's office in Australia. var request = { location: map.getCenter(), radius: '500', query: 'Google Sydney' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } // Checks that the PlacesServiceStatus is OK, and adds a marker // using the place ID and location from the PlacesService. function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); } } google.maps.event.addDomListener(window, 'load', initialize);
รูปภาพสถานที่
ฟีเจอร์รูปภาพสถานที่ช่วยให้คุณเพิ่มเนื้อหารูปภาพคุณภาพสูงลงในเว็บไซต์ได้ บริการ Photos ช่วยให้คุณเข้าถึงรูปภาพหลายล้านรูปที่จัดเก็บไว้ในฐานข้อมูล Places และ Google+ Local เมื่อคุณรับข้อมูลสถานที่โดยใช้คำขอรายละเอียดสถานที่ ระบบจะแสดงข้อมูลอ้างอิงรูปภาพสำหรับเนื้อหารูปภาพที่เกี่ยวข้อง คำขอการค้นหาใกล้เคียงและการค้นหาข้อความจะแสดงรูปภาพอ้างอิงรูปเดียวต่อสถานที่ด้วย หากเกี่ยวข้อง เมื่อใช้บริการ Photos คุณจะเข้าถึงรูปภาพที่อ้างอิงและปรับขนาดรูปภาพให้เหมาะสมกับแอปพลิเคชันของคุณได้
ระบบจะแสดงผลอาร์เรย์ออบเจ็กต์ PlacePhoto
เป็นส่วนหนึ่งของออบเจ็กต์ PlaceResult
สำหรับคำขอ getDetails()
, textSearch()
หรือ nearbySearch()
ทั้งหมดที่ส่งไปยัง PlacesService
หมายเหตุ: จำนวนรูปภาพที่แสดงจะแตกต่างกันไปตามคำขอ
- การค้นหาใกล้เคียงหรือการค้นหาข้อความจะแสดงผลออบเจ็กต์
PlacePhoto
รายการที่มากที่สุด - คำขอรายละเอียดจะแสดงผลออบเจ็กต์
PlacePhoto
ได้สูงสุด 10 รายการ
คุณสามารถขอ URL ของรูปภาพที่เชื่อมโยงได้โดยเรียกใช้เมธอด PlacePhoto.getUrl()
และส่งออบเจ็กต์ PhotoOptions
ที่ถูกต้อง ออบเจ็กต์ PhotoOptions
ช่วยให้คุณระบุความสูงและความกว้างสูงสุดที่ต้องการของรูปภาพได้ หากคุณระบุค่าสำหรับทั้ง maxHeight
และ maxWidth
บริการรูปภาพจะปรับขนาดรูปภาพให้เล็กลงโดยรักษาสัดส่วนภาพเดิม
ข้อมูลโค้ดต่อไปนี้จะยอมรับออบเจ็กต์สถานที่และเพิ่มเครื่องหมายลงในแผนที่หากมีรูปภาพ รูปภาพเครื่องหมายเริ่มต้นจะแทนที่ด้วยรูปภาพเวอร์ชันขนาดเล็ก
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
รูปภาพที่บริการ Photos แสดงผลมาจากแหล่งที่มาที่หลากหลาย ซึ่งรวมถึงรูปภาพจากเจ้าของธุรกิจและรูปภาพที่ผู้ใช้ส่งเข้ามา ในกรณีส่วนใหญ่ คุณสามารถใช้รูปภาพเหล่านี้ได้โดยไม่ต้องระบุแหล่งที่มา หรือจะมีแหล่งที่มาที่จําเป็นรวมอยู่ในรูปภาพ อย่างไรก็ตาม หากองค์ประกอบ photo
ที่แสดงผลมีค่าในช่อง html_attributions
คุณต้องใส่การระบุแหล่งที่มาเพิ่มเติมในแอปพลิเคชันทุกที่ที่คุณแสดงรูปภาพ