ภาพรวม
ฟังก์ชันในไลบรารีของ Places นั้น Maps JavaScript API จะเปิดใช้แอปพลิเคชันของคุณ เพื่อค้นหาสถานที่ (ตามที่กำหนดไว้ใน API นี้เป็นสถานประกอบการ สถานที่ตั้ง หรือจุดที่น่าสนใจที่โดดเด่น) ที่อยู่ภายในพื้นที่ที่กำหนด เช่น ขอบเขตของแผนที่ หรือรอบๆ จุดคงที่
Places API มีคุณลักษณะการเติมข้อความอัตโนมัติที่คุณสามารถใช้ ให้แอปพลิเคชันของคุณมีรูปแบบการค้นหา Google แผนที่ที่ทันท่วงที ช่องค้นหา เมื่อผู้ใช้เริ่มพิมพ์ที่อยู่ การเติมข้อความอัตโนมัติจะ เติมส่วนที่เหลือ สำหรับข้อมูลเพิ่มเติม โปรดดู เติมข้อความอัตโนมัติ เอกสารประกอบ
เริ่มต้นใช้งาน
หากคุณไม่คุ้นเคยกับ Maps JavaScript API หรือ JavaScript เราขอแนะนำให้ตรวจสอบ JavaScript และ รับคีย์ API ล่วงหน้า เพื่อเริ่มต้นใช้งาน
เปิดใช้ API
ก่อนที่จะใช้ไลบรารีสถานที่ใน Maps JavaScript API โปรดตรวจสอบ ได้เปิดใช้ Places API ใน Google Cloud Console ที่คุณสร้างสำหรับ Maps JavaScript API
วิธีดูรายการ API ที่เปิดใช้มีดังนี้
- ไปที่หน้า คอนโซล Google Cloud
- คลิกปุ่มเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์เดียวกับที่คุณสร้าง สำหรับ Maps JavaScript API แล้วคลิกเปิด
- จากรายการ API ในแดชบอร์ด ให้มองหา Places API
- หากคุณเห็น Places API ในรายการ แสดงว่ามีการเปิดใช้ API นั้นแล้ว หาก API
ไม่อยู่ในรายการ ให้เปิดใช้งาน:
- ที่ด้านบนของหน้า ให้เลือกเปิดใช้ API และบริการเพื่อแสดง คลัง หรือจากเมนูด้านซ้าย เลือกคลัง
- ค้นหา Places API แล้วเลือกจาก รายการผลลัพธ์
- เลือกเปิดใช้ เมื่อกระบวนการเสร็จสิ้น Places API จะปรากฏในรายการ API บน แดชบอร์ด
กำลังโหลดคลัง
บริการ Places เป็นห้องสมุดส่วนตัว ที่แยกออกจากห้องสมุดหลัก
โค้ด Maps JavaScript API วิธีใช้ฟังก์ชันที่มีอยู่
ภายในไลบรารีนี้ คุณต้องโหลดโดยใช้ libraries
ก่อน
ใน URL เปิดเครื่องแผนที่ 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 ที่มากขึ้น คำขอไปยัง API หรือ SDK ที่เชื่อมโยงกับคีย์ API จะ ประมวลผลได้ คำขอไปยัง API หรือ SDK ที่ไม่ได้เชื่อมโยงกับคีย์ API จะ ล้มเหลว หากต้องการจำกัดคีย์ API สำหรับการใช้กับไลบรารีสถานที่ Maps JavaScript API ให้ทำดังต่อไปนี้- ไปที่คอนโซล Google Cloud
- คลิกเมนูแบบเลื่อนลง "โปรเจ็กต์" แล้วเลือกโปรเจ็กต์ที่มี คีย์ API ที่ต้องการรักษาความปลอดภัย
- คลิกปุ่มเมนู
แล้วเลือก Google Maps Platform > ข้อมูลเข้าสู่ระบบ
- คลิกชื่อ API ในหน้าข้อมูลเข้าสู่ระบบ ที่คุณต้องการรักษาความปลอดภัย
- ในหน้าจำกัดและเปลี่ยนชื่อคีย์ API ให้กำหนดข้อจำกัดดังนี้
- ข้อจำกัด API
- เลือกจำกัดคีย์
- คลิกเลือก API แล้วเลือกทั้ง Maps JavaScript API และ Places API
(ถ้าไม่มี API ใดในรายการ คุณจะต้องเปิดใช้ API นั้น)
- คลิกบันทึก
ขีดจำกัดและนโยบายการใช้งาน
โควต้า
ห้องสมุดสถานที่ได้ใช้โควต้าการใช้งานร่วมกับ Places API ตามที่อธิบายไว้ในเอกสารประกอบเกี่ยวกับขีดจำกัดการใช้งานสำหรับ Places API
นโยบาย
การใช้ไลบรารี Places นั้น Maps JavaScript API ต้องเป็นไปตาม นโยบายที่อธิบาย สำหรับ Places API
การค้นหาสถานที่
ด้วยบริการ Places คุณสามารถทำการค้นหาประเภทต่อไปนี้
- ค้นหาสถานที่จากการค้นหา แสดงผลสถานที่ตามข้อความค้นหา (ตัวอย่างเช่น ชื่อหรือที่อยู่ของ สถานที่)
- ค้นหาสถานที่จากโทรศัพท์ Number แสดงสถานที่โดยอิงจากหมายเลขโทรศัพท์
- การค้นหาใกล้เคียง จะแสดงรายชื่อสถานที่ใกล้เคียงตามตำแหน่งของผู้ใช้
- การค้นหาข้อความ จะแสดงรายชื่อสถานที่ใกล้เคียงตามสตริงการค้นหา เช่น "พิซซ่า"
- คำขอรายละเอียดสถานที่ จะแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสถานที่หนึ่งๆ ซึ่งรวมถึง รีวิวจากผู้ใช้
ข้อมูลที่แสดงผลอาจรวมถึงสถานประกอบการ เช่น ร้านอาหาร ร้านค้า และสำนักงาน รวมถึง "รหัสพิกัดภูมิศาสตร์" ระบุที่อยู่ พื้นที่ทางการเมือง เช่น เมือง และอื่นๆ จุดที่น่าสนใจ
คำขอค้นหาสถานที่
คำขอค้นหาสถานที่ช่วยให้คุณสามารถค้นหาสถานที่ โดยใช้ข้อความค้นหา หรือ หมายเลขโทรศัพท์ คำขอค้นหาสถานที่มี 2 ประเภท ได้แก่
ค้นหาสถานที่จากการค้นหา
ค้นหาสถานที่จากข้อความค้นหา จะป้อนข้อความและแสดงผลสถานที่ อินพุตสามารถ
เป็นข้อมูลสถานที่ประเภทใดก็ได้ เช่น ชื่อธุรกิจหรือที่อยู่ หากต้องการทำให้
ค้นหาสถานที่จากคำขอการค้นหา โทรหา PlacesService
findPlaceFromQuery()
ซึ่งใช้พารามิเตอร์ต่อไปนี้
query
(ต้องระบุ) สตริงข้อความที่จะค้นหา ตัวอย่าง: "ร้านอาหาร" หรือ "123 Main Street" ต้องเป็นชื่อสถานที่ ที่อยู่หรือหมวดหมู่ของสถานประกอบการ ระบบสามารถสร้างอินพุตประเภทอื่นๆ ข้อผิดพลาด และไม่รับประกันว่าจะแสดงผลการค้นหาที่ถูกต้อง Places API จะแสดงผลการจับคู่คำที่รอการพิจารณาตามสตริงนี้และเรียงลำดับผลลัพธ์ ตามความเกี่ยวข้องที่รับรู้fields
(ต้องระบุ) ช่องอย่างน้อย 1 ช่อง ระบุประเภทของข้อมูลสถานที่ที่จะแสดงlocationBias
(ตัวเลือก) พิกัดที่ระบุพื้นที่ที่จะค้นหา โดยอาจเป็นหนึ่งใน ดังต่อไปนี้:- ชุดพิกัดละติจูด/ลองจิจูดที่ระบุเป็น LatLngLiteral หรือออบเจ็กต์ LatLng
- ขอบเขตสี่เหลี่ยมผืนผ้า (2 คู่ละติจูด/ลองจิจูดหรือวัตถุ LatLngBounds)
- รัศมี (เมตร) ที่มีศูนย์กลางตามละติจูด/ลองจิจูด
คุณต้องส่งเมธอด Callback ไปยัง findPlaceFromQuery()
ด้วย
จัดการออบเจ็กต์ผลลัพธ์และgoogle.maps.places.PlacesServiceStatus
คำตอบ
ตัวอย่างต่อไปนี้แสดงการเรียกไปยัง findPlaceFromQuery()
ค้นหาคำว่า "พิพิธภัณฑ์ศิลปะร่วมสมัยออสเตรเลีย" และรวมถึง
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
ช่องที่สอดคล้องกับผลการค้นหาสถานที่ และจะถูกแบ่งออก
เป็น 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}}
คำขอการค้นหาใกล้เคียง
การค้นหาใกล้เคียงช่วยให้คุณสามารถค้นหาสถานที่ภายในพื้นที่ที่ระบุโดยใช้ คีย์เวิร์ดหรือประเภท การค้นหาใกล้เคียงต้องมีตำแหน่งเสมอ ซึ่งสามารถ โดยระบุด้วย 1 ใน 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 เมตร- a
location
และradius
บัญชีแรกต้องgoogle.maps.LatLng
และรายการหลังจะใช้ จำนวนเต็ม แทนรัศมีของวงกลมเป็นเมตร สูงสุด รัศมีที่อนุญาตคือ 50,000 เมตร โปรดทราบว่าเมื่อrankBy
ได้รับการตั้งค่าเป็น DISTANCE คุณต้องระบุlocation
แต่คุณระบุradius
ไม่ได้ หรือbounds
keyword
(ไม่บังคับ) — คำที่จะจับคู่ เทียบกับฟิลด์ที่มีอยู่ทั้งหมด ซึ่งรวมถึงแต่ไม่จำกัดเพียงชื่อ ประเภท และ รวมถึงบทวิจารณ์ของลูกค้า และเนื้อหาอื่นๆ ของบุคคลที่สามminPriceLevel
และmaxPriceLevel
(ไม่บังคับ) — จำกัดผลการค้นหาให้แสดงเฉพาะที่ที่อยู่ใน ช่วงที่ระบุ ช่วงค่าที่ถูกต้องอยู่ระหว่าง 0 (ประหยัดที่สุด) ถึง 4 (แพงที่สุด) รวมname
เลิกใช้งานแล้ว เทียบเท่ากับkeyword
ค่า ในช่องนี้รวมกับค่าในช่องkeyword
และส่งผ่านเป็นส่วนหนึ่งของสตริงการค้นหาเดียวกันopenNow
(ไม่บังคับ) — ค่าบูลีน โดยระบุว่าบริการ Places ควรส่งคืนเฉพาะสถานที่ที่ เปิดทำการทันทีที่มีการส่งคำค้นหา สถานที่ที่ไม่มี ระบุเวลาทำการในฐานข้อมูล Google สถานที่ไม่ได้ แสดงผลหากคุณรวมพารามิเตอร์นี้ในการค้นหา การเกริ่นนำ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
หรืออย่างน้อย 1 รายการจากkeyword
,name
หรือtype
คือ ต้องระบุ
type
— จำกัด ผลลัพธ์ไปยังสถานที่ที่ตรงกับประเภทที่ระบุ ระบบจะระบุได้เพียงประเภทเดียวเท่านั้น ระบุ (หากระบุมากกว่าหนึ่งประเภท ทุกประเภทที่อยู่หลังประเภทแรก ระบบจะไม่สนใจรายการนี้) ดูรายชื่อ ประเภทที่รองรับ
นอกจากนี้คุณต้องส่งเมธอด 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" ต้องเป็นสถานที่ ชื่อ ที่อยู่ หรือหมวดหมู่ของสถานประกอบการ อินพุตประเภทอื่นๆ ข้อผิดพลาดหรือการรับประกันว่าจะแสดงผลลัพธ์ที่ถูกต้อง สถานที่ บริการจะแสดงผลการจับคู่ผู้สมัครตามสตริงนี้และเรียงลำดับ ผลลัพธ์ตามความเกี่ยวข้องที่รับรู้ ระบบจะไม่บังคับให้พารามิเตอร์นี้ หากใช้พารามิเตอร์type
ในคำขอการค้นหาด้วย- ไม่บังคับ:
openNow
— ค่าบูลีน โดยระบุว่าบริการ Places ควรส่งคืนเฉพาะสถานที่ที่ เปิดทำการทันทีที่มีการส่งคำค้นหา สถานที่ที่ไม่มี ระบุเวลาทำการในฐานข้อมูล Google สถานที่ไม่ได้ แสดงผลหากคุณรวมพารามิเตอร์นี้ในการค้นหา การเกริ่นนำopenNow
ถึงfalse
จะไม่มีผลminPriceLevel
และmaxPriceLevel
— จำกัดผลการค้นหาเฉพาะสถานที่ภายใน ระดับราคาที่ระบุ ค่าที่ถูกต้องจะอยู่ในช่วงตั้งแต่ 0 (ประหยัดที่สุด) ถึง 4 (แพงที่สุด) รวม- ข้อใดข้อหนึ่งต่อไปนี้
bounds
ซึ่งต้อง วัตถุgoogle.maps.LatLngBounds
ที่กำหนดรูปสี่เหลี่ยมผืนผ้า พื้นที่ค้นหา ระยะทางในแนวทแยงมุมสูงสุดที่รองรับสำหรับขอบเขต พื้นที่ประมาณ 100,000 เมตร- a
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
: หน้าเว็บไม่ได้รับอนุญาตให้ใช้ PlacesService.UNKNOWN_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" (เส้นทาง), "นิวยอร์ก" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)
อย่าแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบโดยใช้โปรแกรม แต่คุณควรใช้ คอมโพเนนต์ที่อยู่แต่ละรายการ ซึ่งการตอบสนองของ API จะรวมอยู่ด้วยนอกเหนือจาก ลงในฟิลด์ที่อยู่ที่จัดรูปแบบแล้ว
geometry
: ข้อมูลที่เกี่ยวข้องกับเรขาคณิตของสถานที่ ช่วงเวลานี้ ประกอบด้วย:location
จะระบุละติจูดและลองจิจูดของviewport
จะกำหนดวิวพอร์ตที่ต้องการบนแผนที่เมื่อ กำลังดูสถานที่นี้
permanently_closed
(เลิกใช้งานแล้ว) เป็นธงบูลีนที่ระบุว่าสถานที่นี้ปิดแล้วหรือไม่ ถาวรหรือชั่วคราว (ค่าtrue
) ไม่ใช้permanently_closed
แต่ให้ใช้business_status
แทน เพื่อดูสถานะการดำเนินการของธุรกิจplus_code
(ดู เปิดรหัสสถานที่ตั้ง และโค้ด Plus) คือการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มาจากพิกัดละติจูดและลองจิจูด แสดงพื้นที่: 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 สีขนาด 71 x 71 พิกเซลicon_mask_base_uri
แสดงผล URL ฐานสำหรับสีที่ไม่มีสี ไอคอน ลบนามสกุล .svg หรือ .pngicon_background_color
แสดงรหัสสี HEX เริ่มต้นสำหรับ หมวดหมู่ของสถานที่name
: ชื่อสถานที่opening_hours
อาจมีข้อมูลต่อไปนี้open_now
เป็นค่าบูลีนที่ระบุว่าสถานที่ดังกล่าว เปิดที่เวลาปัจจุบัน (เลิกใช้งานแล้ว ในไลบรารีของ Places, 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()
ฟังก์ชันที่จะแสดงผลชุดถัดไป รายการ หลังจากทำการค้นหา คุณต้องรอ วินาทีก่อนที่ผลลัพธ์หน้าถัดไปจะแสดง
หากต้องการดูผลลัพธ์ชุดถัดไป โปรดโทรหา nextPage
ผลลัพธ์แต่ละหน้าจะต้องแสดงก่อนที่จะแสดงหน้าถัดไปของ
รายการ โปรดทราบว่าการค้นหาแต่ละครั้งจะนับเป็นคำขอ 1 ครั้งสำหรับ
ขีดจำกัดการใช้งาน
ตัวอย่างด้านล่างแสดงวิธีเปลี่ยนฟังก์ชัน 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;
ลองใช้ตัวอย่าง
รายละเอียดสถานที่
นอกจากการแสดงรายชื่อสถ านที่ต่างๆ ภายในบริเวณแล้ว สถานที่ ยังสามารถแสดงข้อมูลโดยละเอียดเกี่ยวกับสถานที่ที่เฉพาะเจาะจงได้อีกด้วย ครั้งเดียว สถานที่ถูกส่งคืนในการตอบกลับการค้นหาสถานที่ รหัสสถานที่ใช้เพื่อขอรายละเอียดเพิ่มเติม เกี่ยวกับสถานที่นั้นๆ เช่น ที่อยู่แบบเต็ม หมายเลขโทรศัพท์ การให้คะแนนของผู้ใช้ และรีวิว เป็นต้น
คำขอรายละเอียดสถานที่
ขอรายละเอียดสถานที่ด้วยการโทรติดต่อไปยัง
getDetails()
วิธี
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
เมธอดนี้จะร้องขอ ซึ่งมีข้อมูลสถานที่ที่ต้องการ
placeId
และช่องที่ระบุประเภทข้อมูลสถานที่
เพื่อกลับไป ดูข้อมูลเพิ่มเติมเกี่ยวกับ
วิธีอ้างอิงสถานที่ด้วยรหัสสถานที่
นอกจากนี้ยังใช้เมธอด Callback ซึ่งต้องจัดการรหัสสถานะที่ส่งผ่าน
ในการตอบกลับ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, 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
: หน้าเว็บไม่ได้รับอนุญาตให้ใช้ PlacesService.UNKNOWN_ERROR
: ไม่สามารถส่งคำขอ PlacesService ประมวลผลเนื่องจากข้อผิดพลาดของเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้งZERO_RESULTS
: ไม่พบผลลัพธ์สำหรับคำขอนี้
ผลการค้นหารายละเอียดสถานที่
การเรียก getDetails()
ที่สำเร็จแสดงผล
PlaceResult
ที่มีพร็อพเพอร์ตี้ต่อไปนี้
address_components
: อาร์เรย์ที่มี ที่เกี่ยวข้องสำหรับที่อยู่นี้ตามปกติองค์ประกอบที่อยู่แต่ละรายการจะมีฟิลด์ต่อไปนี้
types[]
คืออาร์เรย์ที่ระบุประเภทของค่า คอมโพเนนต์ที่อยู่ ดูรายการ ประเภทที่รองรับlong_name
คือคำอธิบายหรือชื่อของ ตามที่ Geocoder แสดงผลshort_name
เป็นชื่อแบบย่อของที่อยู่ คอมโพเนนต์ "หากมี" ตัวอย่างเช่น คอมโพเนนต์ที่อยู่สำหรับรัฐ ของอะแลสกาอาจมีlong_name
เป็น "อะแลสกา" และ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" (เส้นทาง), "นิวยอร์ก" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)
อย่าแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบโดยใช้โปรแกรม แต่คุณควรใช้ คอมโพเนนต์ที่อยู่แต่ละรายการ ซึ่งการตอบสนองของ API จะรวมอยู่ด้วยนอกเหนือจาก ลงในฟิลด์ที่อยู่ที่จัดรูปแบบแล้ว
formatted_phone_number
: จัดรูปแบบหมายเลขโทรศัพท์ของสถานที่ ตาม ของข้อกำหนดในภูมิภาคของหมายเลขgeometry
: ข้อมูลที่เกี่ยวข้องกับเรขาคณิตของสถานที่ ช่วงเวลานี้ ประกอบด้วย:location
จะระบุละติจูดและลองจิจูดของviewport
จะกำหนดวิวพอร์ตที่ต้องการบนแผนที่เมื่อ กำลังดูสถานที่นี้
permanently_closed
(เลิกใช้งานแล้ว) เป็นธงบูลีนที่ระบุว่าสถานที่นี้ปิดแล้วหรือไม่ ถาวรหรือชั่วคราว (ค่าtrue
) ไม่ใช้permanently_closed
แต่ให้ใช้business_status
แทน เพื่อดูสถานะการดำเนินการของธุรกิจplus_code
(ดู เปิดรหัสสถานที่ตั้ง และโค้ด Plus) คือการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มาจากพิกัดละติจูดและลองจิจูด แสดงพื้นที่: 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 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
(เลิกใช้งานแล้ว ในไลบรารีสถานที่, 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
แทน เพื่อดูสถานะการดำเนินการของธุรกิจ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 (หากมี) หรือไม่มี เลย
ใช้คอมโพเนนต์ภาพรวมสถานที่
หมายเหตุ: ตัวอย่างนี้ใช้ไลบรารีโอเพนซอร์ส โปรดดู README เพื่อการสนับสนุน และความคิดเห็น ที่เกี่ยวข้องกับไลบรารี
ลองใช้คอมโพเนนต์เว็บ ใช้ คอมโพเนนต์เว็บภาพรวมสถานที่เพื่อรับรายละเอียดสถานที่ด้วยการแสดงภาพ
![รูปภาพแสดงรูปแบบของขนาด x-เล็ก, เล็ก, กลาง, ใหญ่ และใหญ่ x-ใหญ่
คอมโพเนนต์ภาพรวมสถานที่จะแสดงตามช่องขนาดที่ผู้ใช้ป้อน](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/javascript/images/place-overview-sizes.png?authuser=19&hl=th)
การอ้างอิงสถานที่ด้วยรหัสสถานที่
รหัสสถานที่คือการอ้างอิงที่ไม่ซ้ำกันไปยังสถานที่บน 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);
รูปภาพสถานที่
คุณลักษณะภาพถ่ายสถานที่ช่วยให้คุณสามารถเพิ่มภาพถ่ายที่มีคุณภาพสูง เนื้อหาในเว็บไซต์ของคุณ บริการรูปภาพช่วยให้คุณเข้าถึง ภาพถ่ายที่จัดเก็บไว้ในฐานข้อมูลของ Places และ Google+ Local เมื่อคุณได้รับสถานที่ ข้อมูลโดยใช้คำขอรายละเอียดสถานที่ รูปภาพ ระบบจะส่งข้อมูลอ้างอิงสำหรับเนื้อหาภาพถ่ายที่เกี่ยวข้องกลับมา การค้นหาบริเวณใกล้เคียง และคำขอการค้นหาข้อความจะแสดงการอ้างอิงรูปภาพ 1 ภาพต่อสถานที่ เมื่อ ที่เกี่ยวข้อง เมื่อใช้บริการรูปภาพ คุณสามารถเข้าถึงรูปภาพที่อ้างอิงและ ปรับขนาดรูปภาพเป็นขนาดที่เหมาะสมที่สุดสำหรับแอปพลิเคชันของคุณ
อาร์เรย์ของ PlacePhoto
ออบเจ็กต์จะแสดงผลเป็นส่วนหนึ่งของ
PlaceResult
สำหรับ getDetails()
ใดก็ได้
textSearch()
หรือ
คำขอ nearbySearch()
รายการสำหรับ PlacesService
หมายเหตุ: จำนวนรูปภาพที่ส่งคืนจะแตกต่างกันไปตามคำขอ
- การค้นหาใกล้เคียงหรือการค้นหาข้อความจะแสดงผลสูงสุด 1 รายการ
ออบเจ็กต์
PlacePhoto
รายการ - คำขอรายละเอียดจะแสดงออบเจ็กต์
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
คุณต้องใส่ฟิลด์เพิ่มเติม
ในแอปพลิเคชันของคุณได้ทุกที่ที่คุณแสดงรูปภาพนั้น