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

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

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

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

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

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

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

  • language — ภาษาที่จะแสดงผลการค้นหา
    • ดูรายการภาษาที่รองรับ Google จะอัปเดตภาษาที่รองรับเป็นประจำ ดังนั้นรายการนี้จึงอาจไม่ครอบคลุมทั้งหมด
    • หากไม่ระบุ language โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะพยายามใช้ภาษาที่ต้องการตามที่ระบุในส่วนหัว Accept-Language หรือภาษาดั้งเดิมของโดเมนต้นทางที่ส่งคำขอ
    • โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะพยายามอย่างดีที่สุดเพื่อระบุที่อยู่ที่ทั้งผู้ใช้และคนท้องถิ่นอ่านได้ เพื่อให้บรรลุเป้าหมายดังกล่าว เครื่องมือจะแสดงที่อยู่ในภาษาท้องถิ่นที่ทับศัพท์เป็นสคริปต์ที่ผู้ใช้อ่านได้หากจำเป็น โดยสังเกตภาษาที่ต้องการ โดยอีเมลอื่นๆ ทั้งหมดจะส่งคืนในภาษาที่ต้องการ คอมโพเนนต์ที่อยู่ทั้งหมดจะแสดงเป็นภาษาเดียวกัน ซึ่งจะเลือกจากคอมโพเนนต์แรก
    • หากไม่มีชื่อในภาษาที่ต้องการ โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะใช้รายการที่ตรงกันที่ใกล้เคียงที่สุด
  • region — รหัสภูมิภาคที่ระบุเป็นค่าอักขระ 2 ตัวของ ccTLD ("โดเมนระดับบนสุด") พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้องด้วย
  • result_type — ตัวกรองประเภทที่อยู่อย่างน้อย 1 ประเภทที่คั่นด้วยอักขระไปป์ (|) หากพารามิเตอร์มีที่อยู่หลายประเภท API จะแสดงผลที่อยู่ทั้งหมดที่ตรงกับประเภทใดก็ตาม หมายเหตุเกี่ยวกับการประมวลผล: พารามิเตอร์ result_type จะไม่restrictการค้นหาสำหรับประเภทที่อยู่ที่ระบุ แต่ result_type จะทำหน้าที่เป็นตัวกรองหลังการค้นหา กล่าวคือ API จะดึงผลลัพธ์ทั้งหมดสำหรับ latlng ที่ระบุ จากนั้นจะทิ้งผลลัพธ์ที่ไม่ตรงกับประเภทที่อยู่ที่ระบุ ระบบรองรับค่าต่อไปนี้
    • street_address ระบุที่อยู่ที่แน่ชัด
    • route บ่งชี้ถึงเส้นทางที่มีชื่อ (เช่น "US 101")
    • intersection หมายถึงทางแยกหลัก ซึ่งโดยปกติจะเป็นถนนสายหลัก 2 สาย
    • political หมายถึงหน่วยงานทางการเมือง โดยปกติแล้ว ประเภทนี้จะระบุรูปหลายเหลี่ยมของการบริหารจัดการพลเรือน
    • country หมายถึงหน่วยงานทางการเมืองระดับชาติ และโดยทั่วไปเป็นประเภทลำดับสูงสุดที่ Geocoder แสดงผล
    • administrative_area_level_1 หมายถึงนิติบุคคลอันดับ 1 ที่ต่ำกว่าระดับประเทศ ในสหรัฐอเมริกา ระดับบริหารเหล่านี้เป็นรัฐ มีบางประเทศเท่านั้นที่ไม่ได้แสดงระดับการบริหารเหล่านี้ ในกรณีส่วนใหญ่ ชื่อย่อระดับผู้ดูแลระบบ [Administrative_area_level_1] จะตรงกับการแยกย่อย ISO 3166-2 และรายการที่เผยแพร่อย่างแพร่หลายอื่นๆ แต่ไม่มีการรับประกันเนื่องจากผลการระบุพิกัดทางภูมิศาสตร์ของเราจะอิงตามสัญญาณและข้อมูลตำแหน่งที่หลากหลาย
    • administrative_area_level_2 ระบุนิติบุคคลอันดับที่ 2 ซึ่งอยู่ต่ำกว่าระดับประเทศ ในสหรัฐอเมริกา ระดับบริหารเหล่านี้เป็นเขตปกครอง มีบางประเทศเท่านั้นที่ไม่ได้แสดงระดับการบริหารเหล่านี้
    • administrative_area_level_3 หมายถึงนิติบุคคลพลเรือนที่ 3 ซึ่งอยู่ต่ำกว่าระดับประเทศ ประเภทนี้แสดงถึงการแบ่งแยกทางแพ่งเล็กน้อย มีบางประเทศเท่านั้นที่ไม่ได้แสดงระดับการบริหารเหล่านี้
    • administrative_area_level_4 หมายถึงนิติบุคคลอันดับที่ 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 แทนที่อยู่ในสถานที่ที่ไม่มีอยู่จริงได้ (ที่ไม่มีหมายเลขกำกับอาคารหรือไม่ได้ตั้งชื่อถนน) ดูรายละเอียดได้ที่ https://plus.codes
    • postal_code หมายถึงรหัสไปรษณีย์ที่ใช้ระบุที่อยู่ทางไปรษณีย์ภายในประเทศ
    • natural_feature หมายถึงองค์ประกอบธรรมชาติที่โดดเด่น
    • airport หมายถึงสนามบิน
    • park หมายถึงสวนสาธารณะที่มีชื่อ
    • point_of_interest หมายถึงจุดสนใจที่มีชื่อ โดยปกติแล้ว "จุดที่น่าสนใจ" เหล่านี้คือหน่วยงานท้องถิ่นที่โดดเด่นซึ่งปรากฏในหมวดหมู่อื่นได้ยาก เช่น "อาคารเอ็มไพร์สเตต" หรือ "หอไอเฟล"
  • location_type — ตัวกรองประเภทสถานที่ตั้งอย่างน้อย 1 ประเภทโดยคั่นด้วยอักขระไปป์ (|) หากพารามิเตอร์มีตำแหน่งหลายประเภท API จะแสดงผลที่อยู่ทั้งหมดที่ตรงกับประเภทใดก็ตาม หมายเหตุเกี่ยวกับการประมวลผล: พารามิเตอร์ location_type จะไม่restrictการค้นหาเฉพาะประเภทสถานที่ตั้งที่ระบุ แต่ location_type จะทำหน้าที่เป็นตัวกรองหลังการค้นหา กล่าวคือ API จะดึงผลลัพธ์ทั้งหมดสำหรับ latlng ที่ระบุ และทิ้งผลลัพธ์ที่ไม่ตรงกับประเภทตำแหน่งที่ระบุ ค่าที่รองรับมีดังนี้
    • "ROOFTOP" จะแสดงเฉพาะที่อยู่ที่ Google มีข้อมูลตําแหน่งที่ถูกต้องตามความแม่นยำของที่อยู่
    • "RANGE_INTERPOLATED" แสดงเฉพาะที่อยู่ที่แสดงให้เห็นถึงการประมาณ (มักจะอยู่บนถนน) ที่แทรกระหว่างจุดที่แม่นยำ 2 จุด (เช่น ทางแยก) โดยทั่วไป ช่วงที่ประมาณค่าไว้หมายความว่าระบบพิกัดภูมิศาสตร์บนชั้นดาดฟ้าใช้ไม่ได้กับที่อยู่
    • "GEOMETRIC_CENTER" แสดงเฉพาะจุดศูนย์กลางทางเรขาคณิตของสถานที่ตั้ง เช่น เส้นประกอบ (เช่น ถนน) หรือรูปหลายเหลี่ยม (ภูมิภาค)
    • "APPROXIMATE" จะแสดงผลเฉพาะที่อยู่ที่มีลักษณะเป็นค่าประมาณเท่านั้น

หากมีทั้งตัวกรอง 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> ...

โปรดทราบว่าโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ย้อนกลับแสดงผลลัพธ์มากกว่าหนึ่งรายการ ผลการค้นหา "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

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

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

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

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

ช่อง "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_code ในการตอบกลับข้อมูลพิกัดภูมิศาสตร์มีโค้ด Plus ที่คาดคะเนละติจูดและลองจิจูดที่ค้นหาได้ดีที่สุด นอกจากนี้ ในกรณีส่วนใหญ่ อาร์เรย์ผลลัพธ์ JSON จะมีผลลัพธ์การเข้ารหัสพิกัดภูมิศาสตร์แบบเต็มที่มีประเภท plus_code และที่อยู่ที่มีโค้ด Plus ระยะห่างระหว่างโค้ด Plus ที่ถอดรหัสและจุดส่งคำขอต้องไม่เกิน 10 เมตร