คำขอและตอบกลับเกี่ยวกับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ (การค้นหาที่อยู่)

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

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

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

  • latlng — ละติจูดและลองจิจูด พิกัดที่ระบุสถานที่ที่คุณต้องการให้อยู่ใกล้ที่สุด ที่มนุษย์อ่านได้
  • key — คีย์ API ของแอปพลิเคชัน คีย์นี้จะระบุ แอปพลิเคชันของคุณเพื่อการจัดการโควต้า เรียนรู้วิธีการ ซื้อคีย์

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

พารามิเตอร์เหล่านี้คือพารามิเตอร์ที่ไม่บังคับซึ่งคุณสามารถใส่แบบย้อนกลับได้ คำขอเกี่ยวกับการเข้ารหัสพิกัดภูมิศาสตร์:

  • language — ภาษาที่จะแสดงผลการค้นหา
    • ดูรายชื่อที่สนับสนุน ภาษา Google มักจะอัปเดตภาษาที่สนับสนุน รายการต่อไปนี้เป็นเพียงตัวอย่างบางส่วนเท่านั้น
    • ถ้าไม่ได้ระบุ language โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะพยายาม ใช้ภาษาที่ต้องการตามที่ระบุไว้ใน ส่วนหัว Accept-Language หรือภาษาท้องถิ่นของส่วนหัว โดเมนที่ส่งคำขอมา
    • โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์พยายามอย่างเต็มที่ในการระบุที่อยู่ สามารถอ่านได้ทั้งสำหรับผู้ใช้และคนในท้องถิ่น เพื่อให้บรรลุเป้าหมายนั้น จะแสดงที่อยู่ในภาษาท้องถิ่น ซึ่งทับศัพท์เป็น สคริปต์ที่ผู้ใช้สามารถอ่านได้ถ้าจำเป็น โดยปฏิบัติตามคำแนะนำ ภาษา ที่อยู่อื่นๆ ทั้งหมดจะถูกแสดงไว้ใน ภาษา คอมโพเนนต์ที่อยู่ทั้งหมดจะแสดงผลในภาษาเดียวกัน ซึ่งจะเลือกมาจากคอมโพเนนต์แรก
    • หากไม่มีชื่อในภาษาที่ต้องการ โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะใช้ ที่ใกล้เคียงที่สุด
  • region — รหัสภูมิภาค ระบุเป็น ccTLD ("โดเมนระดับบนสุด") ค่าอักขระสองตัว นอกจากนี้ พารามิเตอร์ยังส่งผลต่อ ผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง
  • result_type — ตัวกรองประเภทที่อยู่อย่างน้อย 1 ประเภท คั่นด้วยเครื่องหมายขีดตั้ง (|) ถ้าพารามิเตอร์มีหลาย ประเภทที่อยู่ API จะแสดงที่อยู่ทั้งหมดที่ตรงกับประเภทใดก็ตาม หมายเหตุเกี่ยวกับการประมวลผล: พารามิเตอร์ result_type จะไม่ จำกัดการค้นหาเฉพาะประเภทที่อยู่ที่ระบุ แต่เป็น result_type ทำหน้าที่เป็นตัวกรองหลังการค้นหา กล่าวคือ API จะดึงข้อมูลทั้งหมด ผลลัพธ์สำหรับ latlng ที่ระบุ และยกเลิกผลลัพธ์เหล่านั้น ที่ไม่ตรงกับประเภทที่อยู่ที่ระบุ ค่าต่อไปนี้ รองรับ
    • street_address ระบุที่อยู่ที่ถูกต้องแม่นยำ
    • route ระบุเส้นทางที่มีชื่อ (เช่น "US 101")
    • intersection หมายถึงทางแยกหลัก ซึ่งโดยปกติคือสี่แยก ถนนสายหลัก
    • political บ่งชี้ถึงหน่วยงานทางการเมือง โดยปกติ ประเภทนี้ แสดงถึงรูปหลายเหลี่ยมของการปกครองระบบพลเรือน
    • country หมายถึงหน่วยงานทางการเมืองระดับชาติ และ ซึ่งโดยทั่วไปจะเป็นประเภทลำดับสูงสุดที่มาจาก Geocoder
    • administrative_area_level_1 บ่งชี้ถึงคดีแพ่งในลำดับแรก ต่ำกว่าระดับประเทศ ในประเทศสหรัฐอเมริกา ระดับการดูแลระบบคือรัฐ มีบางประเทศเท่านั้นที่แสดงสิ่งเหล่านี้ ระดับผู้ดูแลระบบ ในกรณีส่วนใหญ่ admin_area_level_1 ชื่อย่อจะใกล้เคียงกับหมวดย่อย ISO 3166-2 มาก รายการที่เผยแพร่แล้ว แต่ก็ไม่อาจรับประกันได้ว่า ผลจากการระบุพิกัดทางภูมิศาสตร์ของเรา ขึ้นอยู่กับสัญญาณและข้อมูลตำแหน่งต่างๆ
    • administrative_area_level_2 บ่งชี้ถึงคดีแพ่งลำดับที่ 2 ต่ำกว่าระดับประเทศ ในประเทศสหรัฐอเมริกา ระดับการดูแลระบบคือเขต มีบางประเทศเท่านั้นที่แสดงสิ่งเหล่านี้ ระดับผู้ดูแลระบบ
    • administrative_area_level_3 บ่งชี้ถึงคดีแพ่งที่ 3 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
    • administrative_area_level_4 หมายถึงแพ่งที่สี่ ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
    • administrative_area_level_5 หมายถึงแพ่งที่ 5 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
    • administrative_area_level_6 หมายถึงแพ่งที่ 6 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
    • administrative_area_level_7 หมายถึงแพ่งที่ 7 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
    • colloquial_area หมายถึงชื่ออื่นที่ใช้กันโดยทั่วไป สำหรับเอนทิตี
    • locality หมายถึงเมืองหรือเมืองที่รวมอยู่ทางการเมือง เอนทิตี
    • sublocality หมายถึงนิติบุคคลลำดับที่หนึ่งภายใต้ ย่าน สำหรับสถานที่บางแห่งอาจได้รับประเภทเพิ่มเติมอีก 1 ประเภทดังนี้ sublocality_level_1 ไปยัง sublocality_level_5 ระดับย่านย่อยแต่ละระดับเป็นนิติบุคคลพลเรือน ยิ่งมาก ก็แสดงว่าค่า พื้นที่ทางภูมิศาสตร์
    • neighborhood หมายถึงย่านใกล้เคียงที่มีชื่อ
    • premise ระบุตำแหน่งที่มีชื่อ ซึ่งโดยปกติเป็นอาคาร หรือ กลุ่มอาคารที่มีชื่อทั่วไป
    • subpremise หมายถึงเอนทิตีที่มีการสั่งซื้อครั้งแรกด้านล่างชื่อ สถานที่ตั้งซึ่งมักจะเป็นอาคารเดียวภายในกลุ่มอาคารที่มี ชื่อทั่วไป
    • plus_code หมายถึงการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มา จากละติจูดและลองจิจูด Plus Codes สามารถใช้แทนโค้ด ที่อยู่ในสถานที่ที่ไม่มีอยู่ (ที่อาคารไม่มีหมายเลขกำกับ หรือ ไม่มีชื่อถนน) ดู https://plus.codes เพื่อดูรายละเอียด
    • postal_code หมายถึงรหัสไปรษณีย์ตามที่ใช้ระบุรหัสไปรษณีย์ ไปรษณีย์ภายในประเทศ
    • natural_feature หมายถึงองค์ประกอบทางธรรมชาติที่โดดเด่น
    • airport หมายถึงสนามบิน
    • park หมายถึงสวนสาธารณะที่มีชื่อ
    • point_of_interest หมายถึงจุดสนใจที่มีชื่อ โดยปกติแล้ว "จุดที่น่าสนใจ" เหล่านี้จะเป็นเอนทิตีในพื้นที่ที่โดดเด่นซึ่งไม่สามารถจัดวางได้ง่าย ในหมวดหมู่อื่น เช่น "ตึกเอ็มไพร์สเตท" หรือ "หอไอเฟล"
  • location_type — ตัวกรองประเภทสถานที่ตั้งอย่างน้อย 1 ประเภท คั่นด้วยเครื่องหมายขีดตั้ง (|) ถ้าพารามิเตอร์มีหลาย ประเภทตำแหน่ง โดย API จะแสดงที่อยู่ทั้งหมดที่ตรงกับประเภทใดก็ตาม หมายเหตุเกี่ยวกับการประมวลผล: พารามิเตอร์ location_type จะไม่ จำกัดการค้นหาไว้เฉพาะประเภทตำแหน่งที่ระบุ แต่เป็น location_type ทำหน้าที่เป็นตัวกรองหลังการค้นหา โดย API จะดึงข้อมูลทั้งหมด ผลลัพธ์สำหรับ latlng ที่ระบุ และยกเลิกผลลัพธ์เหล่านั้น ที่ไม่ตรงกับประเภทสถานที่ตั้งที่ระบุ ค่าที่รองรับมีดังนี้
    • "ROOFTOP" แสดงผลเฉพาะที่อยู่ที่ Google มีข้อมูลตำแหน่งที่แม่นยำ ถึงที่อยู่ได้ถูกต้อง
    • "RANGE_INTERPOLATED" แสดงผลเฉพาะที่อยู่ที่ แสดงการประมาณ (โดยทั่วไปบนถนน) ที่ประมาณไว้ระหว่าง 2 ส่วน จุดที่แน่นอน (เช่น ทางแยก) ช่วงที่ประมาณ ระบุว่ารหัสพิกัดหลังคาไม่สามารถใช้งานได้สำหรับที่อยู่
    • "GEOMETRIC_CENTER" แสดงผลเฉพาะเรขาคณิตเท่านั้น ศูนย์กลางของสถานที่ตั้ง เช่น เส้นประกอบ (ตัวอย่างเช่น ถนน) หรือ รูปหลายเหลี่ยม (ภูมิภาค)
    • "APPROXIMATE" จะแสดงผลเฉพาะที่อยู่ที่ มีลักษณะเป็นค่าประมาณ
  • extra_computations — ใช้พารามิเตอร์นี้เพื่อระบุ คุณลักษณะเพิ่มเติมต่อไปนี้ในการตอบกลับ: หากต้องการเปิดใช้ฟีเจอร์เหล่านี้หลายรายการสำหรับคำขอ API เดียวกัน ให้ใส่ extra_computations ในคำขอสำหรับแต่ละฟีเจอร์ เช่น
    extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES

หากมีทั้งตัวกรอง result_type และ location_type อยู่ แสดงว่า API แสดงเฉพาะผลลัพธ์ที่ตรงกับทั้ง result_type และ location_type หากระบบยอมรับค่าตัวกรองใดๆ ไม่ได้ API แสดงผล ZERO_RESULTS

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

ข้อความค้นหาต่อไปนี้มีค่าละติจูด/ลองจิจูดสำหรับสถานที่ในบรุกลิน:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY

การค้นหาข้างต้นจะแสดงผลลัพธ์ต่อไปนี้

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

  ... Additional <code>results[]</code> ...

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

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

รายการค่า formatted_address ทั้งหมดที่แสดงโดย การค้นหาก่อนหน้าจะแสดงอยู่ด้านล่าง

{
   "plus_code" : {
      "compound_code" : "P27Q+MCM New York, NY, USA",
      "global_code" : "87G8P27Q+MCM"
   },
   "results" : [
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "premise" ]
      },
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "establishment", "point_of_interest" ]
      },
      {
         "formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "P27Q+MC New York, NY, USA",
         ...
         "types" : [ "plus_code" ]
      },
      {
         "formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY 11211, USA",
         ...
         "types" : [ "postal_code" ]
      },
      {
         "formatted_address" : "Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Kings County, Brooklyn, NY, USA",
         ...
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY, USA",
         ...
         "types" : [ "political", "sublocality", "sublocality_level_1" ]
      },
      {
         "formatted_address" : "New York, NY, USA",
         ...
         "types" : [ "locality", "political" ]
      },
      {
         "formatted_address" : "New York, USA",
         ...
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "formatted_address" : "United States",
         ...
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

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

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

ตัวอย่างต่อไปนี้จะกรองที่อยู่ที่ส่งกลับมาให้รวมเฉพาะที่อยู่ ที่มีประเภทสถานที่ตั้งเป็น ROOFTOP และประเภทที่อยู่เป็น street_address.

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY

หมายเหตุ: ตัวกรองเหล่านี้ใช้ได้กับ การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

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

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

รหัสสถานะการเข้ารหัสแบบย้อนกลับ

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

  • "OK" บ่งบอกว่าไม่มีข้อผิดพลาดเกิดขึ้นและอย่างน้อย 1 รายการ ส่งกลับที่อยู่แล้ว
  • "ZERO_RESULTS" บ่งบอกว่าการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับคือ สำเร็จ แต่ไม่มีผลลัพธ์ ข้อผิดพลาดนี้อาจเกิดขึ้นหากโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ถูก ผ่านlatlngในสถานที่ห่างไกล
  • "OVER_QUERY_LIMIT" บ่งบอกว่าคุณมีอายุเกิน โควต้า
  • "REQUEST_DENIED" บ่งบอกว่าคำขอถูกปฏิเสธ อาจเป็นเพราะคำขอมี result_type หรือ พารามิเตอร์ location_type แต่ไม่มีคีย์ API
  • โดยทั่วไปแล้ว "INVALID_REQUEST" จะระบุค่าใดค่าหนึ่งต่อไปนี้
    • การค้นหา (address, components หรือ latlng) หายไป
    • result_type หรือ location_type ที่ไม่ถูกต้องคือ ที่ให้ไว้
  • "UNKNOWN_ERROR" ระบุว่าไม่สามารถส่งคำขอ ประมวลผลเนื่องจากข้อผิดพลาดของเซิร์ฟเวอร์ คำขออาจดำเนินการสำเร็จหากคุณ ลองอีกครั้ง

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

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