ภาพรวม
ฟังก์ชันในไลบรารี Places ของ Maps JavaScript API ช่วยให้แอปพลิเคชันของคุณ ค้นหาสถานที่ (กำหนดไว้ใน API นี้เป็นสถานประกอบการ สถานที่ตั้งทางภูมิศาสตร์ หรือจุดที่น่าสนใจที่โดดเด่น) ที่อยู่ในพื้นที่ที่กำหนด เช่น ขอบเขตของแผนที่ หรือรอบจุดคงที่
Places API มีฟีเจอร์เติมข้อความอัตโนมัติที่คุณใช้ เพื่อให้แอปพลิเคชันมีลักษณะการค้นหาแบบพิมพ์ล่วงหน้าของช่องค้นหาใน Google Maps ได้ เมื่อผู้ใช้เริ่มพิมพ์ที่อยู่ ฟีเจอร์เติมข้อความอัตโนมัติจะ กรอกส่วนที่เหลือให้ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบการเติมข้อความอัตโนมัติ
เริ่มต้นใช้งาน
หากคุณไม่คุ้นเคยกับ JavaScript API ของ Maps หรือ 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 Console
- คลิกเมนูแบบเลื่อนลงของโปรเจ็กต์ แล้วเลือกโปรเจ็กต์ที่มีคีย์ API ที่ต้องการรักษาความปลอดภัย
- คลิกปุ่มเมนู
แล้วเลือก Google Maps Platform > ข้อมูลเข้าสู่ระบบ
- ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกชื่อคีย์ API ที่ต้องการรักษาความปลอดภัย
- ในหน้าจำกัดและเปลี่ยนชื่อคีย์ API ให้ตั้งค่าข้อจำกัดดังนี้
- ข้อจำกัด API
- เลือกจำกัดคีย์
- คลิกเลือก API แล้วเลือกทั้ง Maps JavaScript API และ Places API
(หากไม่มี API ใด API หนึ่งอยู่ในรายการ คุณต้องเปิดใช้)
- คลิกบันทึก
ขีดจำกัดและนโยบายการใช้งาน
โควต้า
Places Library ใช้โควต้าการใช้งานร่วมกับ Places API ตามที่อธิบายไว้ในเอกสารประกอบเกี่ยวกับขีดจำกัดการใช้งานสำหรับ Places API
นโยบาย
การใช้ Places Library, Maps JavaScript API ต้องเป็นไปตาม นโยบายที่อธิบาย สำหรับ Places API
การค้นหาสถานที่
บริการ Places ช่วยให้คุณค้นหาได้หลายประเภทดังนี้
- ค้นหาสถานที่จากคำค้นหา แสดงสถานที่ตามคำค้นหาที่เป็นข้อความ (เช่น ชื่อหรือที่อยู่ของ สถานที่)
- ค้นหาสถานที่จากหมายเลขโทรศัพท์จะแสดงผลสถานที่ตามหมายเลขโทรศัพท์
- การค้นหาใกล้เคียง แสดงรายการสถานที่ใกล้เคียงตามตำแหน่งของผู้ใช้
- การค้นหาข้อความ แสดงผลรายการสถานที่ใกล้เคียงตามสตริงการค้นหา เช่น "พิซซ่า"
- คำขอรายละเอียดสถานที่ จะแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสถานที่ที่เฉพาะเจาะจง ซึ่งรวมถึง รีวิวจากผู้ใช้
ข้อมูลที่แสดงอาจรวมถึงสถานประกอบการ เช่น ร้านอาหาร ร้านค้า และสำนักงาน รวมถึงผลลัพธ์ "รหัสพิกัดภูมิศาสตร์" ซึ่ง ระบุที่อยู่ พื้นที่ทางการเมือง เช่น เมืองและนคร และจุดที่น่าสนใจอื่นๆ
คำขอ Find Place
คำขอ Find Place ช่วยให้คุณค้นหาสถานที่ได้ทั้งโดยใช้ข้อความค้นหาหรือ หมายเลขโทรศัพท์ คำขอ Find Place มี 2 ประเภท ได้แก่
ค้นหาสถานที่จากคำค้นหา
ค้นหาสถานที่จากคำค้นหาจะรับข้อความนำเข้าและแสดงผลสถานที่ ข้อมูลที่ป้อนอาจเป็นข้อมูลสถานที่ประเภทใดก็ได้ เช่น ชื่อธุรกิจหรือที่อยู่ หากต้องการส่งคำขอ
ค้นหาสถานที่จากคำค้นหา ให้เรียกใช้เมธอด PlacesService's
findPlaceFromQuery()
ซึ่งใช้พารามิเตอร์ต่อไปนี้
query(ต้องระบุ) สตริงข้อความที่จะค้นหา เช่น "ร้านอาหาร" หรือ "123 ถนนเมน" ต้องเป็นชื่อสถานที่ ที่อยู่ หรือหมวดหมู่ของสถานประกอบการ อินพุตประเภทอื่นๆ อาจทำให้เกิดข้อผิดพลาดและไม่รับประกันว่าจะแสดงผลลัพธ์ที่ถูกต้อง 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); } }); }
ค้นหาสถานที่จากหมายเลขโทรศัพท์
ค้นหาสถานที่จากหมายเลขโทรศัพท์จะรับหมายเลขโทรศัพท์และแสดงผลสถานที่ หากต้องการส่งคำขอ Find Place จากหมายเลขโทรศัพท์ ให้เรียกใช้เมธอด 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
ฟิลด์จะสอดคล้องกับผลการค้นหาสถานที่ และแบ่งออกเป็น
หมวดหมู่การเรียกเก็บเงิน 3 หมวดหมู่ ได้แก่ ข้อมูลพื้นฐาน ข้อมูลติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินสำหรับฟิลด์พื้นฐานตามอัตราฐาน และไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสำหรับฟิลด์ Contact และ Atmosphere
ในอัตราที่สูงขึ้น ดูข้อมูลเพิ่มเติมได้ที่ตารางราคา
ระบบจะแสดงการระบุแหล่งที่มา (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 (เลิกใช้งานแล้ว ใน Places Library, Maps JavaScript API ใช้คำขอรายละเอียดสถานที่เพื่อรับ
opening_hoursผลลัพธ์)
บรรยากาศ
หมวดหมู่บรรยากาศมีฟิลด์ต่อไปนี้price_level, rating, user_ratings_total
เมธอด findPlaceFromQuery() และ
findPlaceFromPhoneNumber() จะใช้ชุดฟิลด์เดียวกัน และสามารถแสดงฟิลด์เดียวกันในคำตอบที่เกี่ยวข้องได้
ตั้งค่าอคติของสถานที่ (วิธีการค้นหาสถานที่)
ใช้พารามิเตอร์ locationBias เพื่อให้ Find Place แสดงผลลัพธ์ในพื้นที่หนึ่งๆ คุณตั้งค่า 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จะต้องระบุพารามิเตอร์radiusgoogle.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(ต้องระบุ) สตริงข้อความที่จะค้นหา เช่น "ร้านอาหาร" หรือ "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ระบุสถานะการดำเนินงานของสถานที่ หากเป็นธุรกิจ โดยอาจมีค่าใดค่าหนึ่งต่อไปนี้OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_statusformatted_addressคือสตริงที่มีที่อยู่ที่มนุษย์อ่านได้ ของสถานที่นี้ ระบบจะแสดงพร็อพเพอร์ตี้formatted_addressสำหรับ Text Search เท่านั้นโดยส่วนใหญ่แล้วที่อยู่นี้จะเทียบเท่ากับที่อยู่ทางไปรษณีย์ โปรดทราบว่าบางประเทศ เช่น สหราชอาณาจักร ไม่อนุญาตให้เผยแพร่ที่อยู่ไปรษณีย์จริงเนื่องจากข้อจำกัดด้านการอนุญาตให้ใช้สิทธิ
ที่อยู่ที่จัดรูปแบบแล้วประกอบด้วยคอมโพเนนต์ที่อยู่อย่างน้อย 1 รายการ ตัวอย่างเช่น ที่อยู่ "111 8th Avenue, New York, NY" ประกอบด้วยส่วนประกอบต่อไปนี้ "111" (หมายเลขถนน), "8th Avenue" (เส้นทาง), "New York" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)
อย่าแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบแล้วโดยใช้โปรแกรม แต่คุณควรใช้ คอมโพเนนต์ที่อยู่แต่ละรายการ ซึ่งการตอบกลับของ API จะรวมไว้ด้วย นอกเหนือจากฟิลด์ที่อยู่ที่จัดรูปแบบแล้ว
geometry: ข้อมูลที่เกี่ยวข้องกับรูปทรงเรขาคณิตของสถานที่ ซึ่งรวมถึงข้อมูลต่อไปนี้locationจะแสดงละติจูดและลองจิจูดของ สถานที่viewportกำหนดวิวพอร์ตที่ต้องการบนแผนที่เมื่อ ดูสถานที่นี้
permanently_closed(เลิกใช้งานแล้ว) เป็นแฟล็กบูลีนที่ระบุว่าสถานที่ปิดตัวลงอย่างถาวรหรือชั่วคราว (ค่าtrue) หรือไม่ อย่าใช้permanently_closedแต่ให้ใช้business_statusเพื่อดูสถานะการดำเนินงานของธุรกิจplus_code(ดูOpen Location Code และ Plus Code) คือการอ้างอิงตำแหน่งที่เข้ารหัสซึ่งได้มาจากพิกัดละติจูดและลองจิจูด ซึ่งแสดงถึงพื้นที่ขนาด 1/8000 ขององศาต่อ 1/8000 ขององศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่า คุณใช้ Plus Codes แทน ที่อยู่ได้ในสถานที่ที่ไม่มีที่อยู่ (ไม่มีการกำหนดหมายเลขอ้างอิงอาคารหรือ ไม่มีการตั้งชื่อถนน)Plus Codes มีรูปแบบเป็นรหัสสากลและรหัสผสม ดังนี้
global_codeคือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (849VCWC8+R9)compound_codeคือรหัสท้องถิ่น 6 หลักขึ้นไปที่มีการระบุตำแหน่งชัดเจน (CWC8+R9, Mountain View, CA, USA) อย่าแยกวิเคราะห์เนื้อหานี้โดยใช้โปรแกรม
html_attributions: อาร์เรย์ของการระบุแหล่งที่มาที่คุณควร แสดงเมื่อแสดงผลการค้นหา แต่ละรายการในอาร์เรย์จะมี ข้อความ HTML สำหรับการระบุแหล่งที่มาเดียว หมายเหตุ: นี่คือ การรวบรวมการระบุแหล่งที่มาทั้งหมดสําหรับการตอบกลับการค้นหาทั้งหมด ดังนั้นออบเจ็กต์PlaceResultทั้งหมดในคำตอบจึงมี รายการการระบุแหล่งที่มาเหมือนกันiconจะแสดงผล URL สำหรับไอคอน PNG ขนาด 71x71 พิกเซลแบบมีสี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 โดยใช้ฟังก์ชัน Callback ออบเจ็กต์ 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ไม่พบสถานที่อ้างอิงในฐานข้อมูล PlacesREQUEST_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ระบุสถานะการดำเนินงานของสถานที่ หากเป็นธุรกิจ โดยอาจมีค่าใดค่าหนึ่งต่อไปนี้OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_statusformatted_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เพื่อดูสถานะการดำเนินงานของธุรกิจplus_code(ดูOpen Location Code และ Plus Code) คือการอ้างอิงตำแหน่งที่เข้ารหัสซึ่งได้มาจากพิกัดละติจูดและลองจิจูด ซึ่งแสดงถึงพื้นที่ขนาด 1/8000 ขององศาต่อ 1/8000 ขององศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่า คุณใช้ Plus Codes แทน ที่อยู่ได้ในสถานที่ที่ไม่มีที่อยู่ (ไม่มีการกำหนดหมายเลขอ้างอิงอาคารหรือ ไม่มีการตั้งชื่อถนน)Plus Codes มีรูปแบบเป็นรหัสสากลและรหัสผสม ดังนี้
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 4000name: ชื่อสถานที่utc_offsetเลิกใช้งานแล้ว ใน Places Library, 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กับรายละเอียดสถานที่ได้ใน วิดีโอวิธีดูเวลาทําการใน Places API) `open_now` คือค่าบูลีนที่ระบุว่าสถานที่เปิดทําการในเวลาปัจจุบันหรือไม่periods[]คืออาร์เรย์ของช่วงเวลาเปิดทำการที่ครอบคลุม 7 วัน โดยเริ่มจากวันอาทิตย์ตามลำดับเวลา แต่ละช่วงเวลา จะมีข้อมูลต่อไปนี้openมีออบเจ็กต์วันที่และเวลา 2 รายการ ที่อธิบายเวลาเปิดทำการของสถานที่dayตัวเลขตั้งแต่ 0-6 ซึ่งสอดคล้องกับวัน ของสัปดาห์ โดยเริ่มตั้งแต่วันอาทิตย์ เช่น 2 หมายถึง วันอังคารtimeอาจมีเวลาของวันในรูปแบบ hhmm แบบ 24 ชั่วโมง (ค่าอยู่ในช่วง 0000–2359)timeจะรายงานในเขตเวลาของสถานที่
closeอาจมีออบเจ็กต์คู่ของวันและเวลา ที่อธิบายเวลาปิดของสถานที่ หมายเหตุ:หากสถานที่เปิดตลอดเวลา ส่วนcloseจะหายไปจากคำตอบ แอปพลิเคชันสามารถใช้การระบุว่าเปิดตลอดเวลา เป็นopenช่วงเวลาที่มีdayที่มีค่า 0 และtimeที่มีค่า 0000 และไม่มีclose
weekday_textคืออาร์เรย์ของสตริง 7 รายการที่แสดง เวลาทำการที่จัดรูปแบบแล้วสำหรับแต่ละวันในสัปดาห์ หากมีการระบุพารามิเตอร์languageในคำขอรายละเอียดสถานที่ บริการ Places จะจัดรูปแบบและแปลเวลาทำการ ให้เหมาะสมกับภาษานั้น ลำดับขององค์ประกอบในอาร์เรย์นี้ขึ้นอยู่กับพารามิเตอร์languageบางภาษา เริ่มต้นสัปดาห์ในวันจันทร์ ขณะที่บางภาษาเริ่มต้นในวันอาทิตย์
permanently_closed(เลิกใช้งานแล้ว) เป็นค่าสถานะบูลีนที่ระบุว่าสถานที่ปิดตัวลงอย่างถาวรหรือ ชั่วคราว (ค่าtrue) โปรดอย่าใช้permanently_closedแต่ให้ใช้business_statusเพื่อดูสถานะการดำเนินงานของธุรกิจ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และserviceratingคะแนนของผู้ใช้สำหรับ แง่มุมนี้โดยเฉพาะ ตั้งแต่ 0 ถึง 3
author_nameชื่อของผู้ใช้ที่ส่งรีวิว รีวิวที่ไม่ระบุชื่อจะระบุแหล่งที่มาเป็น "ผู้ใช้ Google" หากตั้งค่าพารามิเตอร์ภาษาไว้ คำว่า "ผู้ใช้ Google" จะแสดงสตริงที่แปลแล้วauthor_urlURL ของโปรไฟล์ 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 ของคำขอ Place Search หรือคำขอรายละเอียด
จากนั้นคุณจะใช้รหัสสถานที่นี้เพื่อค้นหา
รายละเอียด
สถานที่ได้
รหัสสถานที่จะได้รับการยกเว้นจากข้อจำกัดในการแคชที่ระบุไว้ ในส่วน 3.2.3(b) ของ ข้อกำหนดในการให้บริการของ Google Maps Platform ดังนั้นคุณจึงจัดเก็บค่ารหัสสถานที่เพื่อใช้ในภายหลังได้ ดูแนวทางปฏิบัติแนะนำในการจัดเก็บ Place ID ได้ที่ภาพรวมของ Place ID
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);
รูปภาพสถานที่
ใช้ฟีเจอร์รูปภาพสถานที่เพื่อเพิ่มเนื้อหาภาพถ่ายคุณภาพสูงลงในเว็บไซต์ บริการรูปภาพช่วยให้คุณเข้าถึงรูปภาพนับล้านที่จัดเก็บไว้ในฐานข้อมูลของสถานที่และ Google+ ท้องถิ่นได้ เมื่อคุณได้รับข้อมูลสถานที่ โดยใช้คำขอรายละเอียดสถานที่ ระบบจะแสดงผลการอ้างอิงรูปภาพ สำหรับเนื้อหาภาพถ่ายที่เกี่ยวข้อง คำขอการค้นหาใกล้เคียง และการค้นหาข้อความจะแสดงการอ้างอิงรูปภาพเดียวต่อสถานที่ด้วย เมื่อ เกี่ยวข้อง เมื่อใช้บริการรูปภาพ คุณจะเข้าถึงรูปภาพที่อ้างอิงและปรับขนาดรูปภาพให้มีขนาดที่เหมาะสมที่สุดสำหรับแอปพลิเคชันได้
ระบบจะแสดงผลอาร์เรย์ของออบเจ็กต์ PlacePhoto เป็นส่วนหนึ่งของออบเจ็กต์ PlaceResult สำหรับคำขอ getDetails(), textSearch() หรือ nearbySearch() ที่ทำกับ PlacesService
หมายเหตุ: จำนวนรูปภาพที่แสดงจะแตกต่างกันไปตามคำขอ
- การค้นหาใกล้เคียงหรือการค้นหาข้อความจะแสดงออบเจ็กต์
PlacePhotoอย่างน้อย 1 รายการ - คำขอรายละเอียดจะแสดงออบเจ็กต์
PlacePhotoสูงสุด 10 รายการ
คุณขอ URL ของรูปภาพที่เชื่อมโยงได้โดยการเรียกใช้เมธอด
PlacePhoto.getUrl() และส่งออบเจ็กต์
PhotoOptions ที่ถูกต้อง ใช้ออบเจ็กต์ PhotoOptions เพื่อระบุความสูงและความกว้างสูงสุดของรูปภาพ หากคุณ
ระบุค่าสำหรับทั้ง maxHeight และ maxWidth
บริการรูปภาพจะปรับขนาดรูปภาพให้มีขนาดเล็กกว่าใน 2 ขนาดนี้
พร้อมทั้งรักษาสัดส่วนภาพเดิมไว้
ข้อมูลโค้ดต่อไปนี้ยอมรับออบเจ็กต์สถานที่และเพิ่มเครื่องหมาย ลงในแผนที่หากมีรูปภาพ ระบบจะแทนที่รูปภาพเครื่องหมายเริ่มต้น ด้วยรูปภาพเวอร์ชันเล็ก
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}) }); }
รูปภาพที่บริการรูปภาพแสดงจะมาจากสถานที่ต่างๆ ซึ่งรวมถึงรูปภาพที่เจ้าของธุรกิจและผู้ใช้มีส่วนร่วม ในกรณีส่วนใหญ่ คุณสามารถใช้รูปภาพเหล่านี้ได้โดยไม่ต้องระบุแหล่งที่มา หรือจะมี
การระบุแหล่งที่มาที่จำเป็นรวมอยู่เป็นส่วนหนึ่งของรูปภาพ อย่างไรก็ตาม หากองค์ประกอบ
photoที่ส่งคืนมีค่าในฟิลด์
html_attributions คุณต้องระบุแหล่งที่มาเพิ่มเติมในแอปพลิเคชันทุกที่ที่แสดงรูปภาพ