ใช้ Region Lookup API

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

  • การค้นหาภูมิภาคจะค้นหาภูมิภาคตามชื่อสถานที่ รหัส FIPS (รัฐและเขตของสหรัฐอเมริกาเท่านั้น) หรือรหัสประเทศ ISO-3166-1
  • การค้นหาระดับภูมิภาคจะค้นหาภูมิภาคที่มีสถานที่ตั้งที่เฉพาะเจาะจงตามที่ระบุโดยที่อยู่ LatLng หรือรหัสสถานที่

ประเภทสถานที่ในภูมิภาคที่รองรับ

ระบบรองรับสถานที่ประเภทภูมิภาคต่อไปนี้ country, administrative_area_level_1, administrative_area_level_2, postal_code, locality

ติดตั้งไลบรารี

หากต้องการใช้ Region Lookup API ให้ทําตามขั้นตอนต่อไปนี้

  1. เปิดใช้ Region Lookup API ในคอนโซล
  2. ติดตั้งไลบรารีโอเพนซอร์ส npm install @googlemaps/region-lookup

นําเข้าทรัพยากร Dependency จากไลบรารี

ไลบรารีโอเพนซอร์สการค้นหาภูมิภาคมีชุดฟังก์ชันและการกำหนดค่า TypeScript ที่คุณจะต้องนําเข้าไปไว้ในโค้ด

  • สําหรับคําขอค้นหาภูมิภาค ให้นําเข้าข้อมูลต่อไปนี้

    import {
      lookupRegion,
      LookupRegionRequestData,
      LookupRegionResponseData,
      LookupRegionResponse,
      RegionIdentifier
    } from "@googlemaps/region-lookup";
    
  • สําหรับคําขอการค้นหาระดับภูมิภาค ให้นําเข้าข้อมูลต่อไปนี้

    import {
      searchRegion,
      RegionSearchValue,
      SearchRegionRequestData,
      SearchRegionResponse
    } from "@googlemaps/region-lookup";
    

คำขอค้นหาภูมิภาค

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

  • place หรือ unit_code (ต้องระบุ) ชื่อภูมิภาค (place) หรือ unit_codeของสถานที่ unit_code อาจเป็นรหัส FIPS (รัฐและเขตของสหรัฐอเมริกาเท่านั้น) หรือรหัสประเทศ ISO-3166-1
  • place_type (ต้องระบุ) ค่า place type สำหรับประเภทสถานที่ที่จะค้นหา
  • region_code รหัสประเทศ/ภูมิภาค 2 ตัวอักษรตามมาตรฐาน ISO-3166 สำหรับสถานที่ที่จะจับคู่ คุณจะระบุ region_code หรือไม่ก็ได้หาก place_type เป็น COUNTRY
  • language รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" หากไม่ได้ระบุไว้ ระบบจะใช้ en-US เป็นค่าเริ่มต้น

ตัวอย่างต่อไปนี้แสดงคำขอค้นหาสำหรับนวร์ก รัฐนิวเจอร์ซีย์

// Headers
const headers = {
  "X-Goog-Api-Key": "YOUR API KEY",
};
const data: LookupRegionRequestData = {
  identifiers: [
    {
      "place": "newark",
      "place_type": "locality",
      "region_code": "us",
      "language": "en",
    },
  ],
};
const response: LookupRegionResponse = await RegionLookup.lookupRegion({ headers, data });

ต้องระบุพารามิเตอร์ place หรือ unit_code หากไม่ระบุ ระบบจะแสดงผลข้อผิดพลาด

ต้องระบุพารามิเตอร์ region_code เว้นแต่ place_type จะเท่ากับ COUNTRY

place และ unit_code ระบุสถานที่ที่จะจับคู่กับรหัสสถานที่ ตัวอย่างเช่น หาก place คือ "แคลิฟอร์เนีย" และ place_type คือ ADMINISTRATIVE_AREA_LEVEL_1 API จะแสดงรหัสสถานที่สำหรับแคลิฟอร์เนียเป็น matched_place_id

  • place_type: ADMINISTRATIVE_AREA_LEVEL_1

    matched_place_id ผลลัพธ์: รหัสสถานที่สำหรับแคลิฟอร์เนีย ส่วนประเภทอื่นๆ ทั้งหมดที่รองรับจะแสดงผลว่าไม่พบรายการที่ตรงกัน

หาก unit_code คือ "6" (รหัส FIPS ของแคลิฟอร์เนีย), place_type คือ ADMINISTRATIVE_AREA_LEVEL_1 และ region_code คือ "US" API จะแสดงผลรหัสสถานที่สำหรับแคลิฟอร์เนีย ดังนี้

  • place_type: ADMINISTRATIVE_AREA_LEVEL_1
  • region_code: US

    matched_place_id ผลลัพธ์: รหัสสถานที่สำหรับแคลิฟอร์เนีย ส่วนประเภทอื่นๆ ทั้งหมดที่รองรับจะแสดงผลว่าไม่พบรายการที่ตรงกัน

หาก unit_code เป็น "US" API จะแสดงผลลัพธ์ต่อไปนี้เมื่อระบุ place_type ต่อไปนี้

  • place_type: COUNTRY

    matched_place_id results: รหัสสถานที่สำหรับสหรัฐอเมริกา ส่วนประเภทอื่นๆ ทั้งหมดที่รองรับจะแสดงผลว่าไม่พบรายการที่ตรงกัน

หากไม่พบรายการที่ตรงกัน ระบบจะไม่ตั้งค่า matched_place_id

ระบบจะแสดงรหัสสถานที่ที่เป็นไปได้ในกรณีที่มีความคลุมเครือ เช่น หาก place เป็น "ซานตาคลาราเคาน์ตี" และ place_type เป็น LOCALITY ระบบจะแสดงรหัสสถานที่สำหรับซานตาคลาราเคาน์ตีเป็นตัวเลือก

การตอบกลับการค้นหาภูมิภาค

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

{
  "matches": [
    {
      "matchedPlaceId": "ChIJPV4oX_65j4ARVW8IJ6IJUYs"
    }
  ]
}

คำขอการค้นหาเฉพาะส่วน

หากต้องการค้นหาภูมิภาคที่มีสถานที่ตั้งที่เฉพาะเจาะจง ให้เรียกใช้ searchRegion โดยระบุ SearchRegionRequestData พร้อมพารามิเตอร์ต่อไปนี้

  • address หรือ latlng หรือ place_id (ต้องระบุ) มีสตริงที่อยู่ที่ไม่มีโครงสร้าง latlng หรือรหัสสถานที่ที่อยู่ในภูมิภาค (เช่น จุดที่น่าสนใจ อาคาร ฯลฯ) หากไม่ได้ระบุ ระบบจะแสดงผลข้อผิดพลาด
  • place_type (ต้องระบุ) ค่า place type สำหรับประเภทภูมิภาคที่จะค้นหา
  • region_code รหัสประเทศ/ภูมิภาค 2 ตัวอักษรตามมาตรฐาน ISO-3166 สำหรับสถานที่ที่จะจับคู่ ต้องระบุ region_code เมื่อมีการระบุ address
  • language รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" หากไม่ได้ระบุไว้ ระบบจะใช้ en-US เป็นค่าเริ่มต้น

ตัวอย่างต่อไปนี้แสดงคำขอค้นหาสำหรับเบอร์แบงก์ แคลิฟอร์เนีย

// Headers
const headers = {
  "X-Goog-Api-Key": "YOUR API KEY",
};

const data: SearchRegionRequestData = {
  search_values: [
    {
      "address": "2627 N Hollywood Way, Burbank, CA" ,
      "place_type": "locality" as const,
      "region_code": "us"
    },
  ],
};
const response = await regionLookupClient.searchRegion({ headers, data });

การตอบกลับการค้นหาเฉพาะส่วน

ออบเจ็กต์ SearchRegionResponse มี matched_place_id หากพบผลลัพธ์ ในกรณีที่จับคู่ไม่สำเร็จ การตอบกลับจะมีรหัสสถานที่ที่เป็นไปได้อย่างน้อย 1 รหัสและรหัสข้อผิดพลาด

{
  "matches": [
    {
      "matchedPlaceId": "ChIJPV4oX_65j4ARVW8IJ6IJUYs"
    }
  ]
}

ข้อมูลอ้างอิง

LookupRegionRequestData identifiers

ช่อง ประเภท คำอธิบาย
place สตริง ชื่อของภูมิภาคที่จะจับคู่กับรหัสสถานที่ ใช้ช่อง place ร่วมกับ place_type เพื่อค้นหารหัสสถานที่ของภูมิภาค เช่น หาก place_type คือ "locality" place ที่ถูกต้องอาจเป็น "Palo Alto, CA" หาก place_type เป็น "POSTAL_CODE" สถานที่ตั้งที่ถูกต้องอาจเป็น "94109" หาก place_type เป็น "COUNTRY" place ที่ถูกต้องอาจเป็น "United States" เป็นต้น จะต้องระบุ region_code เมื่อมีการระบุ place เว้นแต่ place_type จะเป็น "COUNTRY"
unit_code สตริง รหัสรัฐหรือรหัสเขตของ FIP (สหรัฐอเมริกาเท่านั้น) หรือรหัสประเทศ ISO-3166-1 ที่จะจับคู่ ฟิลด์ unit_code ใช้ร่วมกับ place_type เพื่อค้นหารหัสสถานที่ของภูมิภาค ตัวอย่างเช่น หาก place_type เป็น COUNTRY รหัส unit_code ที่ถูกต้องอาจเป็น "US" (รหัส ISO-3166-1 Alpha-2 สำหรับสหรัฐอเมริกา) หรือ "BR" (รหัส ISO-3166-1 Alpha-2 สำหรับบราซิล) หาก place_type คือ ADMINISTRATIVE_AREA_LEVEL_1 (รัฐ) และ region_code คือ "US" รหัส unit_code ที่ถูกต้องอาจเป็น "6" (รหัส FIP สำหรับแคลิฟอร์เนีย) หรือ "12"(รหัส FIP สำหรับฟลอริดา) หาก place_type เป็น ADMINISTRATIVE_AREA_LEVEL_2 (county) และ region_code เป็น "US" รหัส unit_code ที่ถูกต้องอาจเป็น "6001" (รหัส FIPS สำหรับอลาเมดาเคาน์ตีในแคลิฟอร์เนีย) หรือ "12086" (รหัส FIPS สำหรับไมอามีเดดเคาน์ตีในฟลอริดา) ต้องระบุ region_code เมื่อระบุรหัส FIPs ระบบจะไม่สนใจ region_code สำหรับรหัสประเทศ ISO-3166-1
place_type PlaceType ต้องระบุ ประเภทของภูมิภาคที่จะจับคู่
region_code สตริง รหัสประเทศ/ภูมิภาค ISO-3166 2 ตัวอักษรสำหรับสถานที่ที่คุณพยายามจับคู่ คุณไม่จำเป็นต้องระบุ region_code หาก place_type เป็น "COUNTRY"
language_code สตริง รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" ซึ่งสอดคล้องกับภาษาที่ขอชื่อและที่อยู่ของสถานที่ หากไม่ได้ขอ ระบบจะใช้ภาษาอังกฤษเป็นค่าเริ่มต้น

SearchRegionRequestData identifiers

ต้องระบุ: address, latlng หรือ place_id อย่างใดอย่างหนึ่ง

ช่อง ประเภท คำอธิบาย
address สตริง ที่อยู่ซึ่งไม่มีโครงสร้างซึ่งอยู่ภายในภูมิภาคที่จะจับคู่ ต้องระบุ region_code เมื่อมีการระบุ address
latlng LatLng ละติจูดและลองจิจูดที่อยู่ในภูมิภาคที่จะจับคู่
place_id สตริง รหัสสถานที่ที่อยู่ในภูมิภาคที่จะจับคู่
place_type ประเภทสถานที่ ต้องระบุ ประเภทของภูมิภาคที่จะจับคู่
language_code สตริง รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" ซึ่งสอดคล้องกับภาษาที่ขอชื่อและที่อยู่ของสถานที่ หากไม่มีการขอ ภาษาจะเป็นภาษาอังกฤษโดยค่าเริ่มต้น
region_code สตริง รหัสประเทศ/ภูมิภาค 2 ตัวอักษรตามมาตรฐาน ISO-3166 สำหรับสถานที่ที่จะจับคู่ ต้องระบุ region_code เมื่อมีการระบุที่อยู่

ประเภทสถานที่

ค่า คำอธิบาย
POSTAL_CODE รหัสไปรษณีย์ที่ใช้สำหรับส่งจดหมายภายในประเทศ
ADMINISTRATIVE_AREA_LEVEL_1 บุคคลธรรมดาระดับแรกที่อยู่ต่ำกว่าระดับประเทศ ระดับการปกครองเหล่านี้ในสหรัฐอเมริกาคือรัฐ
ADMINISTRATIVE_AREA_LEVEL_2 บุคคลธรรมดาระดับที่ 2 ที่อยู่ต่ำกว่าระดับประเทศ ในสหรัฐอเมริกา ระดับการปกครองเหล่านี้คือเขต
LOCALITY หน่วยงานทางการเมืองของเมืองหรือเมืองที่รวมตัวกัน
COUNTRY หน่วยงานทางการเมืองระดับประเทศ ซึ่งมักจะเป็นประเภทลําดับสูงสุด

LatLng

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

ช่อง ประเภท คำอธิบาย
latitude double ละติจูดเป็นองศา โดยต้องอยู่ในช่วง [-90.0, +90.0] เช่น 47.47583476464538
longitude double ลองจิจูดเป็นองศา โดยต้องอยู่ในช่วง [-180.0, +180.0] เช่น -121.73858779269906

รหัสข้อผิดพลาด

ค่า คำอธิบาย
UnknownError เกิดข้อผิดพลาดที่ไม่รู้จัก
NoMatchFound คำขอไม่พบรายการที่ตรงกัน ให้ตรวจสอบ candidate_place_ids หากมี
AddressNotUnderstood เข้ารหัสพิกัดภูมิศาสตร์ของที่อยู่ที่ระบุไม่สำเร็จ
PlaceTypeMismatch ประเภทสถานที่ในการตอบกลับไม่ตรงกับประเภทของคำขอ เช่น มีคำขอ locality แต่ระบบแสดงผล administrative_area_level_2
MultipleCandidatesFound มีรายการที่ตรงกับอินพุตหลายรายการ ตรวจสอบ candidate_place_ids หากมี
PlaceNameNotUnderstood ชื่อสถานที่ที่ระบุไม่สามารถแก้ไขเป็นภูมิภาคได้
UnitCodeNotFound ไม่พบรหัสหน่วย ยืนยันว่ารหัสหน่วยถูกต้องและระบุในรูปแบบที่ถูกต้อง
PlaceTypeNotAllowed รหัสสถานที่ที่ตรงกันไม่ได้อยู่ในรายการที่อนุญาตของประเภทสถานที่และประเทศ