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

เลือกแพลตฟอร์ม: Android iOS JavaScript เว็บเซอร์วิส

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

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

"10 High Street, UK" หรือ "123 Main Street, US" "High Street" หลายแห่งในสหราชอาณาจักร "Main Street" หลายแห่งในสหรัฐอเมริกา การค้นหาไม่แสดงผลลัพธ์ที่ต้องการ เว้นแต่จะมีการตั้งค่าการจํากัดตําแหน่ง
"แฟรนไชส์ร้านอาหารนิวยอร์ก" สถานที่ตั้ง "ChainRestaurant" หลายแห่งในนิวยอร์ก ไม่มีที่อยู่หรือแม้แต่ชื่อถนน
"10 High Street, Escher UK" หรือ "123 Main Street, Pleasanton US" "High Street" เพียงแห่งเดียวในเมือง Escher ของสหราชอาณาจักร แต่มีเพียง "Main Street" เดียวในเมือง Pleasanton CA ของสหรัฐอเมริกา
"UniqueRestaurantName New York" มีสถานประกอบการเพียงแห่งเดียวในนิวยอร์กที่ใช้ชื่อนี้ จึงไม่จำเป็นต้องระบุที่อยู่
"ร้านอาหารพิซซ่าในนิวยอร์ก" คําค้นหานี้มีข้อจํากัดด้านสถานที่ตั้ง และ "ร้านอาหารพิซซ่า" เป็นประเภทสถานที่ที่กําหนดไว้อย่างชัดเจน แสดงผลการค้นหาหลายรายการ
"+1 514-670-8700"

คําค้นหานี้มีหมายเลขโทรศัพท์ โดยจะแสดงผลลัพธ์หลายรายการสำหรับสถานที่ที่เชื่อมโยงกับหมายเลขโทรศัพท์นั้น

เครื่องมือสํารวจ 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 ฟิลด์

    • ฟิลด์ต่อไปนี้จะทริกเกอร์ SKU การค้นหาข้อความ (รหัสเท่านั้น)

      places.attributions, places.id, places.name*, nextPageToken

      * ช่อง places.name มีชื่อทรัพยากรสถานที่ในรูปแบบ places/PLACE_ID ใช้ places.displayName เพื่อเข้าถึงชื่อข้อความของสถานที่
    • ช่องต่อไปนี้จะทริกเกอร์ SKU การค้นหาข้อความ (พื้นฐาน)

      places.accessibilityOptions, places.addressComponents, places.adrFormatAddress, places.businessStatus, places.containingPlaces, places.displayName, places.formattedAddress, places.googleMapsLinks*, places.googleMapsUri, places.iconBackgroundColor, places.iconMaskBaseUri, places.location, places.iconMaskBaseUri, places.location, places.iconMaskBaseUri, places.businessStatus, places.containingPlaces , places.containingPlaces, places.displayName, places.formattedAddress, places.googleMapsLinks*, places.googleMapsUri, places.iconBackgroundColor, places.iconMaskBaseUri, places.location, places.iconMaskBaseUri, places.location, places.photos, {13/places.containingPlaces , places.displayName, places.photos, places.plusCode, places.primaryType, places.primaryTypeDisplayName, {4places.pureServiceAreaBusinessplaces.shortFormattedAddressplaces.subDestinationsplaces.typesplaces.utcOffsetMinutesplaces.viewport

    • ฟิลด์ต่อไปนี้จะทริกเกอร์ SKU การค้นหาข้อความ (ขั้นสูง)

      places.currentOpeningHours, places.currentSecondaryOpeningHours, places.internationalPhoneNumber, places.nationalPhoneNumber, places.priceLevel, places.priceRange, places.rating, places.regularOpeningHours, places.regularSecondaryOpeningHours, places.userRatingCount, places.websiteUri
    • ช่องต่อไปนี้จะทริกเกอร์ SKU การค้นหาข้อความ (แนะนำ)

      ที่places.allowsDogs, places.curbsidePickup, places.delivery,places.dineIn, places.editorialSummary, places.evChargeOptions, places.fuelOptions, places.goodForChildren, places.goodForGroups, places.goodForWatchingSports, places.liveMusic, places.menuForChildren, places.liveMusic, places.menuForChildren, places.delivery,places.dineIn,places.editorialSummary,places.editorialSummary places.evChargeOptions, places.fuelOptions, places.goodForChildren, places.goodForGroups, places.goodForWatchingSports, places.liveMusic, places.menuForChildren, places.parkingOptions, places.menuForChildren, places.parkingOptions, places.paymentOptions, {12places.outdoorSeatingplaces.reservableplaces.restroomplaces.reviewsplaces.routingSummariesplaces.servesBeerplaces.servesBreakfastplaces.servesBrunchplaces.servesCocktailsplaces.servesCoffeeplaces.servesDessertplaces.servesDinnerplaces.servesLunchplaces.servesVegetarianFoodplaces.servesWineplaces.takeout

  • textQuery

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

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

  • includedType

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

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

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

  • languageCode

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

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

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

    คุณสามารถระบุ locationRestriction หรือ locationBias เพียงรายการใดรายการหนึ่ง ให้คิดว่า 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 องศา (รวม - 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 ช่วงละติจูดจะว่างเปล่า

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

      ตัวอย่างเช่น วิดเจ็ตนี้แสดงภาพนิวยอร์กซิตี้โดยสมบูรณ์

      "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 เร็วในจีน) และที่ชาร์จของเต้ารับติดผนัง ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิง

    • 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

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

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

    เช่น

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

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

    • สําหรับคําค้นหาแบบหมวดหมู่ เช่น "ร้านอาหารในนิวยอร์กซิตี้" RELEVANCE (จัดอันดับผลการค้นหาตามความเกี่ยวข้องในการค้นหา) จะเป็นค่าเริ่มต้น คุณสามารถตั้งค่า rankPreference เป็น RELEVANCE หรือ DISTANCE (จัดอันดับผลลัพธ์ตามระยะทาง)
    • สําหรับการค้นหาที่ไม่ใช่หมวดหมู่ เช่น "Mountain View, CA" เราขอแนะนําให้ปล่อย 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 ลงใน response ด้วย ดังนั้นจึงอยู่ในรูปแบบ

{
  "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 เป็นการระบุภูมิภาคที่ผลการค้นหาต้องอยู่ใกล้ๆ แต่อยู่นอกพื้นที่ก็ได้

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

curl -X POST -d '{
  "textQuery" : "Spicy 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 kW ในเมาน์เทนวิว รัฐแคลิฟอร์เนีย ระบบจะแสดงผลลัพธ์เพียง 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"
}

ลองใช้งาน

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

  1. เลือกไอคอน API ขยายโปรแกรมสำรวจ API ทางด้านขวาของหน้า

  2. (ไม่บังคับ) ขยายแสดงพารามิเตอร์มาตรฐาน และตั้งค่าพารามิเตอร์ fields เป็นฟิลด์มาสก์

  3. แก้ไขเนื้อหาคําขอ (ไม่บังคับ)

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

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