ห้องสมุดของ Places

ภาพรวม

ฟังก์ชันในไลบรารีของ 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 ที่เปิดใช้มีดังนี้

  1. ไปที่หน้า คอนโซล Google Cloud
  2. คลิกปุ่มเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์เดียวกับที่คุณสร้าง สำหรับ Maps JavaScript API แล้วคลิกเปิด
  3. จากรายการ API ในแดชบอร์ด ให้มองหา Places API
  4. หากคุณเห็น Places API ในรายการ แสดงว่ามีการเปิดใช้ API นั้นแล้ว หาก API ไม่อยู่ในรายการ ให้เปิดใช้งาน:
    1. ที่ด้านบนของหน้า ให้เลือกเปิดใช้ API และบริการเพื่อแสดง คลัง หรือจากเมนูด้านซ้าย เลือกคลัง
    2. ค้นหา Places API แล้วเลือกจาก รายการผลลัพธ์
    3. เลือกเปิดใช้ เมื่อกระบวนการเสร็จสิ้น 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 ให้ทำดังต่อไปนี้
  1. ไปที่คอนโซล Google Cloud
  2. คลิกเมนูแบบเลื่อนลง "โปรเจ็กต์" แล้วเลือกโปรเจ็กต์ที่มี คีย์ API ที่ต้องการรักษาความปลอดภัย
  3. คลิกปุ่มเมนู แล้วเลือก Google Maps Platform > ข้อมูลเข้าสู่ระบบ
  4. คลิกชื่อ API ในหน้าข้อมูลเข้าสู่ระบบ ที่คุณต้องการรักษาความปลอดภัย
  5. ในหน้าจำกัดและเปลี่ยนชื่อคีย์ API ให้กำหนดข้อจำกัดดังนี้
    • ข้อจำกัด API
      • เลือกจำกัดคีย์
      • คลิกเลือก API แล้วเลือกทั้ง Maps JavaScript API และ Places API
        (ถ้าไม่มี API ใดในรายการ คุณจะต้องเปิดใช้ API นั้น)
  6. คลิกบันทึก

ขีดจำกัดและนโยบายการใช้งาน

โควต้า

ห้องสมุดสถานที่ได้ใช้โควต้าการใช้งานร่วมกับ Places API ตามที่อธิบายไว้ในเอกสารประกอบเกี่ยวกับขีดจำกัดการใช้งานสำหรับ Places API

นโยบาย

การใช้ไลบรารี Places นั้น Maps JavaScript API ต้องเป็นไปตาม นโยบายที่อธิบาย สำหรับ Places API

การค้นหาสถานที่

ด้วยบริการ Places คุณสามารถทำการค้นหาประเภทต่อไปนี้

ข้อมูลที่แสดงผลอาจรวมถึงสถานประกอบการ เช่น ร้านอาหาร ร้านค้า และสำนักงาน รวมถึง "รหัสพิกัดภูมิศาสตร์" ระบุที่อยู่ พื้นที่ทางการเมือง เช่น เมือง และอื่นๆ จุดที่น่าสนใจ

คำขอค้นหาสถานที่

คำขอค้นหาสถานที่ช่วยให้คุณสามารถค้นหาสถานที่ โดยใช้ข้อความค้นหา หรือ หมายเลขโทรศัพท์ คำขอค้นหาสถานที่มี 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.164
  • fields (ต้องระบุ) ช่องอย่างน้อย 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 หรือ .png
  • icon_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 ถึง 5
    • textรีวิวของผู้ใช้ เมื่อตรวจสอบ สถานที่ด้วย 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-ใหญ่
    คอมโพเนนต์ภาพรวมสถานที่จะแสดงตามช่องขนาดที่ผู้ใช้ป้อน
รูปที่ 1: วางข้อมูลรายละเอียดโดยมีขนาดที่แตกต่างกัน 5 ขนาด

การอ้างอิงสถานที่ด้วยรหัสสถานที่

รหัสสถานที่คือการอ้างอิงที่ไม่ซ้ำกันไปยังสถานที่บน 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 คุณต้องใส่ฟิลด์เพิ่มเติม ในแอปพลิเคชันของคุณได้ทุกที่ที่คุณแสดงรูปภาพนั้น