การค้นหาข้อความ (ใหม่)

เลือกแพลตฟอร์ม: Android iOS JavaScript Web Service

นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

บทนำ

การค้นหาข้อความ (ใหม่) แสดงข้อมูลเกี่ยวกับชุดสถานที่ตามสตริง (เช่น "พิซซ่าในนิวยอร์ก" หรือ "ร้านรองเท้าใกล้ออตตาวา" หรือ "123 ถนนเมน") บริการจะตอบกลับด้วยรายการสถานที่ที่ตรงกับสตริงข้อความและค่าความเอนเอียงของตำแหน่ง ที่ตั้งไว้

นอกเหนือจากพารามิเตอร์ที่จำเป็นแล้ว การค้นหาข้อความ (ใหม่) ยังรองรับการปรับแต่งคำค้นหาโดยใช้พารามิเตอร์ที่ไม่บังคับเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น

โปรแกรมสำรวจ API ช่วยให้คุณส่งคำขอแบบเรียลไทม์เพื่อให้คุ้นเคยกับ API และตัวเลือก API ดังนี้

คำขอการค้นหาข้อความ (ใหม่)

คำขอการค้นหาข้อความ (ใหม่) คือคำขอ HTTP POST ในรูปแบบต่อไปนี้

https://places.googleapis.com/v1/places:searchText

ส่งพารามิเตอร์ทั้งหมดในเนื้อหาคำขอ JSON หรือในส่วนหัวเป็นส่วนหนึ่งของ คำขอ POST เช่น

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

คำตอบของการค้นหาข้อความ (ใหม่)

การค้นหาข้อความ (ใหม่) จะแสดง ออบเจ็กต์ JSON เป็นการตอบกลับ ในการตอบกลับ

  • places อาร์เรย์มีสถานที่ที่ตรงกันทั้งหมด
  • แต่ละสถานที่ในอาร์เรย์จะแสดงด้วยออบเจ็กต์ Place ออบเจ็กต์ Place มีข้อมูลโดยละเอียดเกี่ยวกับสถานที่เดียว
  • FieldMask ที่ส่งในคำขอจะระบุรายการฟิลด์ที่แสดงผลในออบเจ็กต์ Place

ออบเจ็กต์ JSON ที่สมบูรณ์อยู่ในรูปแบบต่อไปนี้

{
  "places": [
    {
      object (Place)
    }
  ]
}

พารามิเตอร์ที่จำเป็น

  • FieldMask

    ระบุรายการช่องที่จะแสดงผลในการตอบกลับโดยการสร้างมาสก์ของช่องการตอบกลับ ส่งมาสก์ฟิลด์การตอบกลับไปยังเมธอดโดยใช้พารามิเตอร์ URL $fields หรือ fields หรือโดยใช้ส่วนหัว HTTP X-Goog-FieldMask ไม่มีรายการฟิลด์ที่ส่งคืนเริ่มต้นในการตอบกลับ หากคุณละเว้นมาสก์ของฟิลด์ เมธอดจะแสดงข้อผิดพลาด

    การมาสก์ฟิลด์เป็นแนวทางปฏิบัติในการออกแบบที่ดีเพื่อให้มั่นใจว่าคุณจะไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและการเรียกเก็บเงินที่ไม่จำเป็น

    ระบุรายการประเภทข้อมูลสถานที่ที่คั่นด้วยคอมมาเพื่อส่งคืน เช่น เพื่อดึงชื่อที่แสดงและที่อยู่ของสถานที่

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    ใช้ * เพื่อดึงข้อมูลทั้งหมด

    X-Goog-FieldMask: *

    ระบุช่องต่อไปนี้อย่างน้อย 1 ช่อง

    • ฟิลด์ต่อไปนี้จะทริกเกอร์ Text Search Essentials ID Only SKU

      places.attributions
      places.id
      places.name*
      nextPageToken

      * ฟิลด์ places.name มีชื่อทรัพยากรของสถานที่ ในรูปแบบ places/PLACE_ID ใช้ places.displayName ใน SKU Pro เพื่อเข้าถึงชื่อข้อความของสถานที่

    • ฟิลด์ต่อไปนี้จะทริกเกอร์ Text Search Pro SKU

      places.accessibilityOptions
      places.addressComponents
      places.addressDescriptor*
      places.adrFormatAddress
      places.businessStatus
      places.containingPlaces
      places.displayName
      places.formattedAddress
      places.googleMapsLinks**
      places.googleMapsUri
      places.iconBackgroundColor
      places.iconMaskBaseUri
      places.location
      places.photos
      places.plusCode
      places.postalAddress
      places.primaryType
      places.primaryTypeDisplayName
      places.pureServiceAreaBusiness
      places.shortFormattedAddress
      places.subDestinations
      places.types
      places.utcOffsetMinutes
      places.viewport

      * โดยทั่วไปแล้ว ตัวอธิบายที่อยู่จะมีให้บริการแก่ลูกค้าในอินเดีย และเป็นเวอร์ชันทดลองในประเทศอื่นๆ

      ** ฟิลด์ places.googleMapsLinks อยู่ในระยะตัวอย่างก่อน GA และไม่มีค่าใช้จ่าย ซึ่งหมายความว่าการเรียกเก็บเงินจะเป็น $0 สำหรับการใช้งานในระหว่างช่วงตัวอย่าง
    • ฟิลด์ต่อไปนี้จะทริกเกอร์ SKU ของ Text Search Enterprise

      places.currentOpeningHours
      places.currentSecondaryOpeningHours
      places.internationalPhoneNumber
      places.nationalPhoneNumber
      places.priceLevel
      places.priceRange
      places.rating
      places.regularOpeningHours
      places.regularSecondaryOpeningHours
      places.userRatingCount
      places.websiteUri
    • ฟิลด์ต่อไปนี้จะทริกเกอร์ Text Search Enterprise + Atmosphere SKU

      places.allowsDogs
      places.curbsidePickup
      places.delivery
      places.dineIn
      places.editorialSummary
      places.evChargeAmenitySummary
      places.evChargeOptions
      places.fuelOptions
      places.generativeSummary
      places.goodForChildren
      places.goodForGroups
      places.goodForWatchingSports
      places.liveMusic
      places.menuForChildren
      places.neighborhoodSummary
      places.parkingOptions
      places.paymentOptions
      places.outdoorSeating
      places.reservable
      places.restroom
      places.reviews
      places.reviewSummary
      places.routingSummaries*
      places.servesBeer
      places.servesBreakfast
      places.servesBrunch
      places.servesCocktails
      places.servesCoffee
      places.servesDessert
      places.servesDinner
      places.servesLunch
      places.servesVegetarianFood
      places.servesWine
      places.takeout

      * การค้นหาข้อความและการค้นหาในบริเวณใกล้เคียงเท่านั้น
  • textQuery

    สตริงข้อความที่จะค้นหา เช่น "ร้านอาหาร" "123 ถนนเมน" หรือ "สถานที่ที่ดีที่สุดในการเยี่ยมชมในซานฟรานซิสโก" API จะแสดงรายการที่ตรงกัน ตามสตริงนี้และจัดลำดับผลลัพธ์ตามความเกี่ยวข้องที่ระบบรับรู้

พารามิเตอร์ที่ไม่บังคับ

  • includedType

    เอนเอียงผลการค้นหาไปยังสถานที่ที่ตรงกับประเภทที่ระบุซึ่งกำหนดโดยตาราง ก ระบุได้เพียงประเภทเดียว เช่น

    • "includedType":"bar"
    • "includedType":"pharmacy"

    การค้นหาด้วยข้อความ (ใหม่) จะใช้การกรองประเภทสำหรับคำค้นหาบางคำ ทั้งนี้ขึ้นอยู่กับความเหมาะสม เช่น การกรองประเภทอาจไม่มีผลกับคำค้นหาสำหรับที่อยู่เฉพาะ ("123 Main Street") แต่การกรองประเภทจะมีผลกับคำค้นหาตามหมวดหมู่ ("ร้านค้าใกล้เคียง" หรือ "ห้างสรรพสินค้า") เกือบทุกครั้ง

    หากต้องการใช้การกรองประเภทกับคำค้นหาทั้งหมด ให้ตั้งค่า strictTypeFiltering เป็น true

  • includePureServiceAreaBusinesses

    หากตั้งค่าเป็น true คำตอบจะรวมธุรกิจที่ไปหา หรือให้บริการแก่ลูกค้าโดยตรง แต่ไม่มีสถานที่ตั้งธุรกิจจริง หากตั้งค่าเป็น false API จะแสดงเฉพาะธุรกิจที่มี สถานที่ตั้งจริงของธุรกิจ

  • languageCode

    ภาษาที่จะแสดงผลลัพธ์

    • ดู รายการภาษาที่รองรับ Google มักจะอัปเดตภาษาที่รองรับอยู่เสมอ ดังนั้นรายการนี้อาจไม่ครอบคลุมทั้งหมด
    • หากไม่ได้ระบุ languageCode API จะใช้ en เป็นค่าเริ่มต้น หากคุณระบุรหัสภาษาที่ไม่ถูกต้อง API จะ แสดงข้อผิดพลาด INVALID_ARGUMENT
    • API จะพยายามอย่างเต็มที่เพื่อให้ที่อยู่แบบถนนที่อ่านได้สำหรับทั้งผู้ใช้และคนในพื้นที่ เพื่อให้บรรลุเป้าหมายดังกล่าว ระบบจะแสดงที่อยู่ ในภาษาท้องถิ่น โดยแปลงเป็นสคริปต์ที่ผู้ใช้อ่านได้หากจำเป็น ตามภาษาที่ต้องการ ระบบจะแสดงที่อยู่อื่นๆ ทั้งหมด ในภาษาที่ต้องการ คอมโพเนนต์ของที่อยู่ ทั้งหมดจะแสดงในภาษาเดียวกัน ซึ่งเลือกจากคอมโพเนนต์แรก
    • หากชื่อไม่มีให้บริการในภาษาที่ต้องการ API จะใช้ชื่อที่ ใกล้เคียงที่สุด
    • ภาษาที่ต้องการมีผลเล็กน้อยต่อชุดผลลัพธ์ที่ API เลือกที่จะแสดงผล และลำดับที่แสดงผล Geocoder จะตีความตัวย่อแตกต่างกันไปตามภาษา เช่น ตัวย่อของประเภทถนน หรือคำพ้องความหมายที่อาจ ใช้ได้ในภาษาหนึ่งแต่ใช้ไม่ได้ในอีกภาษาหนึ่ง
  • locationBias

    ระบุพื้นที่ที่จะค้นหา ตำแหน่งนี้ทำหน้าที่เป็นอคติ ซึ่งหมายความว่า ระบบจะแสดงผลการค้นหาที่อยู่รอบๆ ตำแหน่งที่ระบุ รวมถึงผลการค้นหา ที่อยู่นอกพื้นที่ที่ระบุ

    คุณระบุ locationRestriction หรือ locationBias ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ คิดว่า locationRestriction เป็นการระบุ ภูมิภาคที่ผลการค้นหาต้องอยู่ภายใน และ locationBias เป็นการ ระบุภูมิภาคที่ผลการค้นหาน่าจะอยู่ภายในหรือใกล้เคียง แต่ก็อาจ อยู่นอกพื้นที่ได้

    ระบุภูมิภาคเป็นวิวพอร์ตสี่เหลี่ยมผืนผ้าหรือวงกลม

    • วงกลมกำหนดโดยจุดศูนย์กลางและรัศมีเป็นเมตร รัศมี ต้องอยู่ระหว่าง 0.0 ถึง 50000.0 (รวม) รัศมีเริ่มต้นคือ 0.0 เช่น

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • สี่เหลี่ยมผืนผ้าคือวิวพอร์ตละติจูด-ลองจิจูด ซึ่งแสดงเป็นจุดต่ำและจุดสูง 2 จุดที่อยู่ตรงข้ามกันในแนวทแยง จุดต่ำสุดจะทำเครื่องหมายมุมตะวันตกเฉียงใต้ ของสี่เหลี่ยมผืนผ้า และจุดสูงสุดจะแสดงมุมตะวันออกเฉียงเหนือ ของสี่เหลี่ยมผืนผ้า

      ระบบจะถือว่าวิวพอร์ตเป็น ภูมิภาคปิด ซึ่งหมายความว่ารวมถึงขอบเขตของวิวพอร์ตด้วย ขอบเขตละติจูด ต้องอยู่ระหว่าง -90 ถึง 90 องศา และขอบเขตลองจิจูด ต้องอยู่ระหว่าง -180 ถึง 180 องศา

      • หาก low = high วิวพอร์ตจะประกอบด้วย จุดเดียว
      • หาก low.longitude > high.longitude ช่วงลองจิจูดจะกลับด้าน (วิวพอร์ตข้ามเส้นลองจิจูด 180 องศา)
      • หาก low.longitude = -180 องศา และ high.longitude = 180 องศา วิวพอร์ตจะรวมลองจิจูดทั้งหมด
      • หาก low.longitude = 180 องศาและ high.longitude = -180 องศา ช่วงลองจิจูดจะ ว่างเปล่า
      • หาก low.latitude > high.latitude ช่วงละติจูดจะว่าง

      ต้องระบุทั้งค่าต่ำสุดและค่าสูงสุด และช่องที่แสดงต้องไม่ว่าง เปล่า โดยช่องแสดงผลที่ว่างเปล่าจะทำให้เกิดข้อผิดพลาด

      ตัวอย่างเช่น Viewport นี้ครอบคลุมนิวยอร์กซิตี้ทั้งหมด

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • locationRestriction

    ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ

    ระบุภูมิภาคเป็นวิวพอร์ตสี่เหลี่ยมผืนผ้า ดูตัวอย่างการ กำหนดวิวพอร์ตได้ที่คำอธิบาย ของ locationBias

    คุณระบุ locationRestriction หรือ locationBias ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ คิดว่า locationRestriction เป็นการระบุ ภูมิภาคที่ผลการค้นหาต้องอยู่ภายใน และ locationBias เป็นการ ระบุภูมิภาคที่ผลการค้นหาน่าจะอยู่ภายในหรือใกล้เคียง แต่ก็อาจ อยู่นอกพื้นที่ได้

  • maxResultCount (เลิกใช้งานแล้ว)

    ระบุจำนวนผลการค้นหา (ระหว่าง 1 ถึง 20) ที่จะแสดงต่อหน้า เช่น การตั้งค่า maxResultCount เป็น 5 จะแสดงผลลัพธ์สูงสุด 5 รายการในหน้าแรก หากมีผลลัพธ์เพิ่มเติมที่สามารถแสดงได้ จากการค้นหา การตอบกลับจะมี nextPageToken ที่คุณ ส่งไปยังคำขอถัดไปเพื่อเข้าถึงหน้าถัดไปได้

  • evOptions

    ระบุพารามิเตอร์สำหรับการระบุหัวชาร์จรถยนต์ไฟฟ้า (EV) ที่พร้อมให้บริการ และอัตราการชาร์จ

    • connectorTypes

      กรองตามประเภทหัวชาร์จ EV ที่มีในสถานที่ ระบบจะกรองสถานที่ที่ไม่รองรับตัวเชื่อมต่อประเภทใดประเภทหนึ่งออก ประเภทขั้วต่อที่ชาร์จ EV ที่รองรับ ได้แก่ ที่ชาร์จแบบรวม (AC และ DC) ที่ชาร์จ Tesla, ที่ชาร์จที่สอดคล้องกับ GB/T (สำหรับการชาร์จเร็ว EV ใน จีน) และที่ชาร์จแบบเต้ารับติดผนัง ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ อ้างอิง

      • หากต้องการกรองผลลัพธ์สำหรับเครื่องมือเชื่อมต่อที่รองรับที่เฉพาะเจาะจง ให้ตั้งค่า connectorTypes เป็นค่านั้น เช่น หากต้องการค้นหาขั้วต่อประเภท 1 ของ J1772 ให้ตั้งค่า connectorTypes เป็น EV_CONNECTOR_TYPE_J1772
      • หากต้องการกรองผลลัพธ์สำหรับตัวเชื่อมต่อที่ไม่รองรับ ให้ตั้งค่า connectorTypes เป็น EV_CONNECTOR_TYPE_OTHER
      • หากต้องการกรองผลลัพธ์สำหรับขั้วต่อประเภทใดก็ตามที่เป็นเต้ารับ ให้ตั้งค่า connectorTypes เป็น EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
      • หากต้องการกรองผลลัพธ์สำหรับตัวเชื่อมต่อประเภทใดก็ตาม ให้ตั้งค่า connectorTypes เป็น EV_CONNECTOR_TYPE_UNSPECIFIED หรือไม่ต้องตั้งค่าสำหรับ connectorTypes
    • minimumChargingRateKw

      กรองสถานที่ตามอัตราการชาร์จ EV ขั้นต่ำเป็นกิโลวัตต์ (kW) ระบบจะกรอง สถานที่ที่คิดค่าบริการต่ำกว่าอัตราการชาร์จขั้นต่ำออก เช่น หากต้องการค้นหาที่ชาร์จ EV ที่มีอัตราการชาร์จอย่างน้อย 10 กิโลวัตต์ คุณสามารถตั้งค่าพารามิเตอร์นี้เป็น "10"

  • minRating

    จำกัดผลลัพธ์เฉพาะผลลัพธ์ที่มีคะแนนจากผู้ใช้เฉลี่ยมากกว่า หรือเท่ากับขีดจำกัดนี้ ค่าต้องอยู่ระหว่าง 0.0 ถึง 5.0 (รวม) โดยเพิ่มขึ้นทีละ 0.5 เช่น 0, 0.5, 1.0, ... , 5.0 ระบบจะปัดเศษค่าขึ้นเป็น 0.5 ที่ใกล้ที่สุด เช่น ค่า 0.6 จะตัดผลลัพธ์ทั้งหมดที่มีคะแนนน้อยกว่า 1.0 ออก

  • openNow

    หากเป็น true ให้แสดงเฉพาะสถานที่ที่เปิดให้บริการ ในขณะที่ส่งคำค้นหา หาก false ให้แสดงธุรกิจทั้งหมด โดยไม่คำนึงถึงสถานะเปิดทำการ สถานที่ที่ไม่ได้ระบุเวลาทำการในฐานข้อมูล Google Places จะ แสดงขึ้นหากคุณตั้งค่าพารามิเตอร์นี้เป็น false

  • pageSize

    ระบุจำนวนผลการค้นหา (ระหว่าง 1 ถึง 20) ที่จะแสดงต่อหน้า เช่น การตั้งค่า pageSize เป็น 5 จะแสดงผลลัพธ์สูงสุด 5 รายการในหน้าแรก หากมีผลลัพธ์เพิ่มเติมที่สามารถแสดงได้ จากการค้นหา การตอบกลับจะมี nextPageToken ที่คุณ ส่งไปยังคำขอถัดไปเพื่อเข้าถึงหน้าถัดไปได้

  • pageToken

    ระบุ nextPageToken จากเนื้อหาการตอบกลับของ หน้าก่อนหน้า

  • priceLevels

    จำกัดการค้นหาเฉพาะสถานที่ที่มีการทำเครื่องหมายในระดับราคาที่กำหนด ค่าเริ่มต้นคือการเลือกระดับราคาทั้งหมด

    ระดับราคาที่คาดการณ์ได้สำหรับสถานที่ประเภทต่อไปนี้

    สถานที่ประเภทที่ไม่รองรับจะไม่รวมอยู่ในคำตอบหากมีการระบุ priceLevels

    ระบุอาร์เรย์ของค่าอย่างน้อย 1 ค่าที่กำหนดโดย PriceLevel

    เช่น

    "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
  • rankPreference

    ระบุวิธีจัดอันดับผลลัพธ์ในการตอบกลับตามประเภทของคำค้นหา ดังนี้

    • สำหรับคำค้นหาตามหมวดหมู่ เช่น "ร้านอาหารในนิวยอร์ก" RELEVANCE (จัดอันดับผลลัพธ์ตามความเกี่ยวข้องกับการค้นหา) จะเป็นค่าเริ่มต้น คุณตั้งค่า rankPreference เป็น RELEVANCE หรือ DISTANCE (จัดอันดับผลลัพธ์ตามระยะทาง) ได้
    • สำหรับคำค้นหาที่ไม่ใช่หมวดหมู่ เช่น "เมาน์เทนวิว แคลิฟอร์เนีย" เราขอแนะนำ ให้คุณปล่อยrankPreferenceไว้โดยไม่ต้องตั้งค่า
  • regionCode

    รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ โดยระบุเป็นค่า รหัส CLDR 2 อักขระ พารามิเตอร์นี้อาจส่งผลต่อความเอนเอียงของผลการค้นหาด้วย ไม่มีค่าเริ่มต้น

    หากชื่อประเทศของฟิลด์ formattedAddress ในการตอบกลับตรงกับ regionCode ระบบจะไม่แสดงรหัสประเทศจาก formattedAddress พารามิเตอร์นี้ไม่มีผลกับ adrFormatAddress ซึ่งจะมีชื่อประเทศเสมอเมื่อ พร้อมใช้งาน หรือกับ shortFormattedAddress ซึ่งจะไม่มีชื่อประเทศ เลย

    รหัส CLDR ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับ นิติบุคคลของ "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ") พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง

  • strictTypeFiltering

    ใช้กับพารามิเตอร์ includedType เมื่อตั้งค่าเป็น true ระบบจะแสดงเฉพาะสถานที่ที่ตรงกับประเภทที่ระบุโดย includeType เมื่อเป็นเท็จ (ค่าเริ่มต้น) คำตอบอาจมีสถานที่ที่ไม่ตรงกับ ประเภทที่ระบุ

ตัวอย่างการค้นหาข้อความ (ใหม่)

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

ตัวอย่างต่อไปนี้แสดงคำขอการค้นหาข้อความ (ใหม่) สำหรับ "อาหารมังสวิรัติรสเผ็ดในซิดนีย์ ออสเตรเลีย"

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

โปรดทราบว่าส่วนหัว X-Goog-FieldMask ระบุว่าการตอบกลับ มีฟิลด์ข้อมูลต่อไปนี้ places.displayName,places.formattedAddress จากนั้นคำตอบจะอยู่ในรูปแบบต่อไปนี้

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Peace Harmony",
        "languageCode": "en"
      }
    },
    ...
  ]
}

เพิ่มประเภทข้อมูลอื่นๆ ลงในมาสก์ฟิลด์เพื่อแสดงข้อมูลเพิ่มเติม เช่น เพิ่ม places.types,places.websiteUri เพื่อรวมประเภทร้านอาหารและที่อยู่เว็บไว้ในคำตอบ

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri' \
'https://places.googleapis.com/v1/places:searchText'

ตอนนี้คำตอบอยู่ในรูปแบบต่อไปนี้

{
  "places": [
    {
      "types": [
        "vegetarian_restaurant",
        "vegan_restaurant",
        "chinese_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "websiteUri": "http://www.motherchusvegetarian.com.au/",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "vegan_restaurant",
        "thai_restaurant",
        "vegetarian_restaurant",
        "indian_restaurant",
        "italian_restaurant",
        "american_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "websiteUri": "http://www.veggosizzle.com.au/",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    ...
  ]
}

กรองสถานที่ตามระดับราคา

ใช้ตัวเลือก priceLevel เพื่อกรองผลลัพธ์ให้แสดงเฉพาะร้านอาหาร ที่ระบุว่ามีราคาถูกหรือราคาสูงปานกลาง

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

ตัวอย่างนี้ยังใช้ส่วนหัว X-Goog-FieldMask เพื่อเพิ่มฟิลด์ข้อมูล places.priceLevel ลงใน การตอบกลับ เพื่อให้มีรูปแบบดังนี้

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "115 King St, Newtown NSW 2042, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Green Mushroom",
        "languageCode": "en"
      }
    },
    ...
  ]
}

เพิ่มตัวเลือกอื่นๆ เพื่อปรับแต่งการค้นหา เช่น includedType, minRating, rankPreference, openNow, และพารามิเตอร์อื่นๆ ที่อธิบายไว้ใน พารามิเตอร์ที่ไม่บังคับ

จำกัดการค้นหาไว้ในพื้นที่ที่ระบุ

ใช้ locationRestriction หรือ locationBias แต่อย่าใช้ทั้ง 2 อย่าง เพื่อจำกัดการค้นหาให้อยู่ในพื้นที่ ลองนึกถึง locationRestriction เป็นการระบุภูมิภาคที่ผลการค้นหาต้องอยู่ภายใน และ locationBias เป็นการระบุภูมิภาคที่ผลการค้นหาต้องอยู่ใกล้ แต่สามารถอยู่นอกพื้นที่ได้

จำกัดพื้นที่โดยใช้ locationRestriction

ใช้พารามิเตอร์ locationRestriction เพื่อจำกัดผลการค้นหาไว้ที่ภูมิภาคที่ระบุ ในเนื้อหาคำขอ ให้ระบุค่าละติจูดและลองจิจูด low และ high ที่กำหนดขอบเขตภูมิภาค

ตัวอย่างต่อไปนี้แสดงคำขอการค้นหาข้อความ (ใหม่) สำหรับ "อาหาร มังสวิรัติ" ในนิวยอร์กซิตี้ คำขอนี้จะแสดงผลลัพธ์ 10 รายการแรกสำหรับ สถานที่ที่เปิดอยู่เท่านั้น

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "pageSize" : "10",
  "locationRestriction": {
    "rectangle": {
      "low": {
        "latitude": 40.477398,
        "longitude": -74.259087
      },
      "high": {
        "latitude": 40.91618,
        "longitude": -73.70018
      }
    }
  }
}' \
  -H 'Content-Type: application/json' \
  -H 'X-Goog-Api-Key: API_KEY' \
  -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
  'https://places.googleapis.com/v1/places:searchText'

เอนเอียงไปยังพื้นที่โดยใช้ locationBias

ตัวอย่างต่อไปนี้แสดงคำขอการค้นหาข้อความ (ใหม่) สำหรับ "อาหารมังสวิรัติ" ที่มีอคติไปยังสถานที่ตั้งภายใน 500 เมตรจากจุดหนึ่งใน ย่านใจกลางเมืองซานฟรานซิสโก คำขอนี้จะแสดงผลลัพธ์ 10 รายการแรกสำหรับ สถานที่ที่เปิดอยู่เท่านั้น

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "openNow": true,
  "pageSize": 10,
  "locationBias": {
    "circle": {
      "center": {"latitude": 37.7937, "longitude": -122.3965},
      "radius": 500.0
    }
  },
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

ค้นหาที่ชาร์จ EV ที่มีอัตราการชาร์จขั้นต่ำ

ใช้ minimumChargingRateKw และ connectorTypes เพื่อ ค้นหาสถานที่ที่มีที่ชาร์จที่พร้อมใช้งานซึ่งใช้กับ EV ของคุณได้

ตัวอย่างต่อไปนี้แสดงคำขอสำหรับหัวชาร์จ EV ประเภท 1 ของ Tesla และ J1772 ที่มีอัตราการชาร์จขั้นต่ำ 10 กิโลวัตต์ในเมาน์เทนวิว แคลิฟอร์เนีย ระบบจะแสดงผลลัพธ์เพียง 4 รายการ

curl -X POST -d '{
    "textQuery": "EV Charging Station Mountain View",
    "pageSize": 4,
    "evOptions": {
      "minimumChargingRateKw": 10,
      "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"]
    }
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \
'https://places.googleapis.com/v1/places:searchText'

คำขอจะแสดงการตอบกลับต่อไปนี้

{
  "places": [
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 16,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CHADEMO",
            "maxChargeRateKw": 100,
            "count": 8,
            "availableCount": 5,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 2,
            "availableCount": 2,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 350,
            "count": 6,
            "availableCount": 3,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 6,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 4,
            "availableCount": 3,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 350,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 2,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 5,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_J1772",
            "maxChargeRateKw": 3.5999999046325684,
            "count": 1,
            "availableCount": 0,
            "outOfServiceCount": 1,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CHADEMO",
            "maxChargeRateKw": 50,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 50,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "Electric Vehicle Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 10,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_OTHER",
            "maxChargeRateKw": 210,
            "count": 10
          }
        ]
      }
    }
  ]
}

ค้นหาธุรกิจที่ให้บริการตามสถานที่

ใช้พารามิเตอร์ includePureServiceAreaBusinesses เพื่อค้นหา ธุรกิจที่ไม่มีที่อยู่สำหรับรับบริการจริง (เช่น บริการทำความสะอาดแบบเคลื่อนที่ หรือรถขายอาหาร)

ตัวอย่างต่อไปนี้แสดงคำขอสำหรับช่างประปาในซานฟรานซิสโก

curl -X POST -d '{
  "textQuery" : "plumber San Francisco",
  "includePureServiceAreaBusinesses": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

ในการตอบกลับ ธุรกิจที่ไม่มีที่อยู่สำหรับให้บริการจริงจะไม่รวม ฟิลด์ formattedAddress

{
  "places": [
    {
      "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA",
      "displayName": {
        "text": "Advanced Plumbing & Drain",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Magic Plumbing Heating & Cooling",
        "languageCode": "en"
      }
    },
    /.../
    {
      "displayName": {
        "text": "Starboy Plumbing Inc.",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Cabrillo Plumbing, Heating & Air",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Mr. Rooter Plumbing of San Francisco",
        "languageCode": "en"
      }
    },
    /.../
    {
      "displayName": {
        "text": "Pipeline Plumbing",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA",
      "displayName": {
        "text": "One Source Plumbing and Rooter",
        "languageCode": "en"
      }
    },
    /.../
  ]
}

ระบุจำนวนผลลัพธ์ที่จะแสดงต่อหน้า

ใช้พารามิเตอร์ pageSize เพื่อระบุจำนวนผลลัพธ์ที่จะ แสดงต่อหน้า พารามิเตอร์ nextPageToken ในเนื้อหาการตอบกลับ จะแสดงโทเค็นที่ใช้ในการเรียกครั้งต่อๆ ไปเพื่อเข้าถึงผลลัพธ์ในหน้าถัดไปได้

ตัวอย่างต่อไปนี้แสดงคำขอสำหรับ "พิซซ่าในนิวยอร์ก" โดยจำกัดผลลัพธ์ไว้ที่ 5 รายการต่อหน้า

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJifIePKtZwokRVZ-UdRGkZzs"
    },
    {
      "id": "ChIJPxPd_P1YwokRfzLhSiACEoU"
    },
    {
      "id": "ChIJrXXKn5NZwokR78g0ipCnY60"
    },
    {
      "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE"
    },
    {
      "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw"
    }
  ],
  "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}

หากต้องการเข้าถึงผลลัพธ์ในหน้าถัดไป ให้ใช้ pageToken เพื่อส่ง nextPageToken ในเนื้อหาของคำขอ

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5,
  "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw"
    },
    {
      "id": "ChIJjaD94kFZwokR-20CXqlpy_4"
    },
    {
      "id": "ChIJ6ffdpJNZwokRmcafdROM5q0"
    },
    {
      "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM"
    },
    {
      "id": "ChIJ8164qwFZwokRhplkmhvq1uE"
    }
  ],
  "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c"
}

รับตัวอธิบายที่อยู่

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

ตัวอย่างต่อไปนี้แสดงคำขอการค้นหาข้อความ (ใหม่) สำหรับสถานที่ใกล้กับห้างสรรพสินค้าในซันโฮเซ ในตัวอย่างนี้ คุณจะใส่ addressDescriptors ในฟิลด์ mask ดังนี้

curl -X POST -d '{
  "textQuery": "clothes",
  "maxResultCount": 5,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.321328,
        "longitude": -121.946275
      }
    }
  },
  "rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText

คำตอบประกอบด้วยสถานที่ที่ระบุในคำขอ รายการสถานที่สำคัญใกล้เคียง และระยะทางจากสถานที่นั้น รวมถึงรายการพื้นที่และความสัมพันธ์ ในการบรรจุสถานที่นั้น

  {
  "places": [
    {
      "displayName": {
        "text": "Urban Outfitters",
        "languageCode": "en"
      },
      "addressDescriptor": {
        "landmarks": [
          {
            "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "food",
              "movie_theater",
              "point_of_interest",
              "restaurant",
              "shoe_store",
              "shopping_mall",
              "store"
            ],
            "spatialRelationship": "WITHIN",
            "straightLineDistanceMeters": 133.72855
          },
          {
            "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "displayName": {
              "text": "Nordstrom",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "point_of_interest",
              "shoe_store",
              "store"
            ],
            "straightLineDistanceMeters": 250.99161
          },
          {
            "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4",
            "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4",
            "displayName": {
              "text": "Macy's",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "point_of_interest",
              "store"
            ],
            "straightLineDistanceMeters": 116.24196
          },
          {
            "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY",
            "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY",
            "displayName": {
              "text": "Bank of America Financial Center",
              "languageCode": "en"
            },
            "types": [
              "bank",
              "establishment",
              "finance",
              "point_of_interest"
            ],
            "straightLineDistanceMeters": 121.61515
          },
          {
            "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw",
            "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw",
            "displayName": {
              "text": "Bloomingdale's",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "furniture_store",
              "home_goods_store",
              "point_of_interest",
              "shoe_store",
              "store"
            ],
            "straightLineDistanceMeters": 81.32396
          }
        ],
        "areas": [
          {
            "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          {
            "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "displayName": {
              "text": "Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          {
            "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM",
            "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM",
            "displayName": {
              "text": "Central San Jose",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          }
        ]
      }
    },
    /.../
  ]
}

ลองใช้งาน

โปรแกรมสำรวจ API ช่วยให้คุณส่งคำขอตัวอย่างได้ เพื่อให้คุ้นเคยกับ API และตัวเลือก API

  1. เลือกไอคอน API api ทางด้านขวาของหน้า

  2. แก้ไขพารามิเตอร์คำขอ (ไม่บังคับ)

  3. เลือกปุ่มดำเนินการ ในกล่องโต้ตอบ ให้เลือกบัญชี ที่ต้องการใช้เพื่อส่งคำขอ

  4. ในแผงโปรแกรมสำรวจ API ให้เลือกไอคอนเต็มหน้าจอ fullscreen เพื่อขยายหน้าต่างโปรแกรมสำรวจ API