ย้อนกลับตำแหน่งที่ระบุพิกัดทางภูมิศาสตร์

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

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

เมื่อเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับของตำแหน่ง คำตอบจะมีข้อมูลต่อไปนี้

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

คำขอการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

คำขอการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับคือคำขอ GET ของ HTTP คุณระบุสถานที่ เป็นสตริงที่ไม่มีโครงสร้างได้ดังนี้

https://geocode.googleapis.com/v4/geocode/location/LATITUDE,LONGITUDE

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

https://geocode.googleapis.com/v4/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE

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

ส่งพารามิเตอร์อื่นๆ ทั้งหมดเป็นพารามิเตอร์ URL หรือส่งพารามิเตอร์จำพวกคีย์ API หรือฟิลด์มาสก์ในส่วนหัวโดยเป็นส่วนหนึ่งของคำขอ GET เช่น

ส่งสตริงสถานที่ที่ไม่มีโครงสร้าง

สถานที่ตั้งที่ไม่มีโครงสร้างคือสถานที่ตั้งที่จัดรูปแบบเป็นสตริงของพิกัดละติจูดและลองจิจูดซึ่งคั่นด้วยคอมมา ดังนี้

https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?key=API_KEY

หรือในคำสั่ง curl

curl -X GET -H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
"https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"

ส่งตำแหน่งที่มีโครงสร้าง

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

https://geocode.googleapis.com/v4/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338&key=API_KEY

ใช้ OAuth เพื่อสร้างคำขอ

Geocoding API v4 รองรับ OAuth 2.0 สำหรับการตรวจสอบสิทธิ์ หากต้องการใช้ OAuth กับ Geocoding API คุณต้องกำหนดขอบเขตที่ถูกต้องให้กับโทเค็น OAuth Geocoding API รองรับขอบเขตต่อไปนี้เพื่อใช้กับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

  • https://www.googleapis.com/auth/maps-platform.geocode — ใช้กับเมธอด Geocoding API ทั้งหมด
  • https://www.googleapis.com/auth/maps-platform.geocode.location — ใช้กับ GeocodeLocation เท่านั้นสำหรับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

นอกจากนี้ คุณยังใช้ขอบเขตทั่วไป https://www.googleapis.com/auth/cloud-platform สำหรับเมธอด Geocoding API ทั้งหมดได้ด้วย ขอบเขตดังกล่าวมีประโยชน์ในระหว่างการพัฒนา แต่ไม่ใช่ในเวอร์ชันที่ใช้งานจริง เนื่องจากเป็นขอบเขตทั่วไปที่อนุญาตให้เข้าถึงทุกเมธอด

ดูข้อมูลและตัวอย่างเพิ่มเติมได้ที่ใช้ OAuth

การตอบกลับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับจะแสดงผลออบเจ็กต์ GeocodeLocationResponse ซึ่งมีข้อมูลต่อไปนี้

  • อาร์เรย์ results ของออบเจ็กต์ GeocodeResult ที่แสดงสถานที่

    การตอบกลับของ Geocoding API มีtypesอาร์เรย์ใน 2 ส่วนหลักภายใน GeocodeResult ดังนี้

    1. GeocodeResult.types: อาร์เรย์นี้ระบุประเภทโดยรวมของผลการค้นหา ค่าที่เป็นไปได้มาจากตาราง A และตาราง B ในหน้าประเภทสถานที่ (ใหม่)
    2. GeocodeResult.addressComponents[].types: คอมโพเนนต์ที่อยู่แต่ละรายการมีอาร์เรย์ types ที่ระบุประเภทของส่วนที่เฉพาะเจาะจงของที่อยู่ ค่าเหล่านี้มาจากตารางประเภทที่อยู่และประเภทคอมโพเนนต์ของที่อยู่ในหน้าประเภทสถานที่ (ใหม่)

    Reverse Geocoder จะแสดงผลลัพธ์มากกว่า 1 รายการในอาร์เรย์ results ผลลัพธ์ไม่ใช่แค่ที่อยู่ไปรษณีย์ แต่เป็นวิธีใดก็ได้ในการ ตั้งชื่อสถานที่ทางภูมิศาสตร์ ตัวอย่างเช่น เมื่อทำการแปลงรหัสพิกัดภูมิศาสตร์ของจุดในเมืองชิคาโก ระบบอาจระบุจุดที่แปลงรหัสพิกัดภูมิศาสตร์เป็นที่อยู่ถนน เป็นเมือง (ชิคาโก) เป็นรัฐ (อิลลินอยส์) หรือเป็นประเทศ (สหรัฐอเมริกา) ทั้งหมด คือ "ที่อยู่" ของ Geocoder เครื่องมือระบุพิกัดทางภูมิศาสตร์แบบย้อนกลับจะแสดงผลประเภทใดประเภทหนึ่งต่อไปนี้ เป็นผลลัพธ์ที่ถูกต้อง

  • ฟิลด์ plusCode ซึ่งมีประเภท PlusCode มี Plus Code ที่ประมาณค่าละติจูดและลองจิจูดในคำขอได้ดีที่สุด นอกจากนี้ องค์ประกอบแต่ละรายการของอาร์เรย์ results ยังมี Plus Code ด้วย ระยะห่างระหว่าง Plus Code ที่ถอดรหัสแล้วกับจุดที่ขออยู่ต่ำกว่า 10 เมตร

    หมายเหตุ: API ไม่ได้แสดง Plus Code เสมอไป

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

{
  "results": [
    {
      "place": "//places.googleapis.com/places/ChIJV-FZF7i7j4ARo4ZOUoecZFU",
      "placeId": "ChIJV-FZF7i7j4ARo4ZOUoecZFU",
      "location": {
        "latitude": 37.422588300000008,
        "longitude": -122.0846489
      },
      "granularity": "ROOFTOP",
      "viewport": {
        "low": {
          "latitude": 37.421239319708512,
          "longitude": -122.0859978802915
        },
        "high": {
          "latitude": 37.423937280291511,
          "longitude": -122.08329991970851
        }
      },
      "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "addressComponents": [
        {
          "longText": "1600",
          "shortText": "1600",
          "types": [
            "street_number"
          ]
        },
        {
          "longText": "Amphitheatre Parkway",
          "shortText": "Amphitheatre Pkwy",
          "types": [
            "route"
          ],
          "languageCode": "en"
        },
        {
          "longText": "Mountain View",
          "shortText": "Mountain View",
          "types": [
            "locality",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "Santa Clara County",
          "shortText": "Santa Clara County",
          "types": [
            "administrative_area_level_2",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "California",
          "shortText": "CA",
          "types": [
            "administrative_area_level_1",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "United States",
          "shortText": "US",
          "types": [
            "country",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "94043",
          "shortText": "94043",
          "types": [
            "postal_code"
          ]
        }
      ],
      "types": [
        "street_address"
      ],
      "plusCode": {
        "globalCode": "849VCW83+PM",
        "compoundCode": "CW83+PM Mountain View, CA, USA"
      }
    },
    {
      "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw",
      "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw",
      "location": {
        "latitude": 37.4220541,
        "longitude": -122.08532419999999
      },
      "granularity": "ROOFTOP",
      "viewport": {
        "low": {
          "latitude": 37.4207051197085,
          "longitude": -122.08667318029148
        },
        "high": {
          "latitude": 37.423403080291493,
          "longitude": -122.08397521970851
        }
      },
      "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "addressComponents": [
        {
          "longText": "1600",
          "shortText": "1600",
          "types": [
            "street_number"
          ]
        },
        {
          "longText": "Amphitheatre Parkway",
          "shortText": "Amphitheatre Pkwy",
          "types": [
            "route"
          ],
          "languageCode": "en"
        },
        {
          "longText": "Mountain View",
          "shortText": "Mountain View",
          "types": [
            "locality",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "Santa Clara County",
          "shortText": "Santa Clara County",
          "types": [
            "administrative_area_level_2",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "California",
          "shortText": "CA",
          "types": [
            "administrative_area_level_1",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "United States",
          "shortText": "US",
          "types": [
            "country",
            "political"
          ],
          "languageCode": "en"
        },
        {
          "longText": "94043",
          "shortText": "94043",
          "types": [
            "postal_code"
          ]
        }
      ],
      "types": [
        "establishment",
        "point_of_interest"
      ],
      "plusCode": {
        "globalCode": "849VCWC7+RV",
        "compoundCode": "CWC7+RV Mountain View, CA, USA"
      }
    },
   ...
  ],
  "plusCode": {
    "globalCode": "849VCWF8+24H",
    "compoundCode": "CWF8+24H Mountain View, CA, USA"
  }
}

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

  • สถานที่

    พิกัดละติจูดและลองจิจูดที่ระบุตำแหน่งที่คุณต้องการ ที่อยู่ที่ใกล้ที่สุดซึ่งมนุษย์อ่านได้

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

  • languageCode

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

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

    รหัสภูมิภาคเป็นค่ารหัส CLDR 2 หลัก ไม่มีค่าเริ่มต้น รหัส CLDR ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1

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

  • รายละเอียด

    ความละเอียดของสถานที่ตั้งอย่างน้อย 1 รายการที่ระบุเป็นพารามิเตอร์การค้นหาแยกกันตามที่กำหนดโดย Granularity หากคุณระบุgranularityหลายพารามิเตอร์ API จะแสดงที่อยู่ทั้งหมดที่ตรงกับความละเอียดใดก็ตาม

    พารามิเตอร์ granularity ไม่ได้จำกัดการค้นหาตามระดับความละเอียดของสถานที่ที่ระบุ แต่จะ granularity ทำหน้าที่เป็นตัวกรองหลังการค้นหา API จะดึงผลลัพธ์ทั้งหมด สำหรับ location ที่ระบุ จากนั้นจะทิ้งผลลัพธ์ ที่ไม่ตรงกับระดับความละเอียดของสถานที่ตั้งที่ระบุ

    หากคุณระบุทั้ง types และ granularity API จะแสดงเฉพาะผลลัพธ์ที่ตรงกับทั้ง 2 รายการ เช่น

    https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP&granularity=GEOMETRIC_CENTER&key=API_KEY
  • ประเภท

    ประเภทที่อยู่อย่างน้อย 1 ประเภทที่ระบุเป็นพารามิเตอร์การค้นหาแยกกัน ค่าที่เป็นไปได้มาจากตารางประเภทที่อยู่และประเภทคอมโพเนนต์ของที่อยู่ในหน้าประเภทสถานที่ (ใหม่) หากคุณระบุพารามิเตอร์หลายรายการ types API จะแสดงที่อยู่ทั้งหมดที่ตรงกับประเภทใดประเภทหนึ่ง

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

    หากคุณระบุทั้ง types และ granularity API จะแสดงเฉพาะผลลัพธ์ที่ตรงกับทั้ง 2 รายการ เช่น

    https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2&types=locality&key=API_KEY
  • FieldMask

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

    curl -X GET -H 'Content-Type: application/json' \
    -H 'X-Goog-FieldMask: results.placeId' \
    -H "X-Goog-Api-Key: API_KEY" \
    "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
    
    คำตอบคือ
    {
      "results": [
        {
          "placeId": "ChIJHRNUiQK6j4ARJ__Hrbt6qsE"
        },
        {
          "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
        },
        {
          "placeId": "ChIJ1yjFJ1-7j4ARG_RVqFD1h7k"
        },
        {
          "placeId": "ChIJ09H2YwK6j4ARoF7qfCBxhB8"
        },
        ...
      ]
    }

    ดูรายละเอียดเพิ่มเติมได้ที่เลือกช่องที่จะแสดงผล