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

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

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

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

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

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

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

  • language — ภาษาที่จะแสดงผลการค้นหา
    • ดูรายการภาษาที่รองรับ Google มักจะอัปเดตภาษาที่รองรับอยู่บ่อยครั้ง รายการนี้จึงอาจไม่ครบถ้วน
    • หากไม่ได้ระบุ language โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะพยายามใช้ภาษาที่ต้องการตามที่ระบุไว้ในส่วนหัว Accept-Language หรือภาษาท้องถิ่นของโดเมนที่ใช้ส่งคำขอ
    • โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์พยายามอย่างเต็มที่ในการระบุที่อยู่ ที่ทั้งผู้ใช้และคนในท้องถิ่นสามารถอ่านได้ และเพื่อให้บรรลุเป้าหมาย แสดงผลที่อยู่ในภาษาท้องถิ่น ถอดเสียงเป็นสคริปต์ที่ผู้ใช้อ่านได้หากจำเป็น โดยสังเกตภาษาที่ต้องการ ส่วนที่อยู่อื่นๆ ทั้งหมดจะแสดงผลในภาษาที่ต้องการ คอมโพเนนต์ที่อยู่ทั้งหมดจะแสดงผลในภาษาเดียวกัน โดยเลือกจากคอมโพเนนต์แรก
    • หากไม่มีชื่อในภาษาที่ต้องการ โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะใช้การจับคู่ที่ตรงกันที่สุด
  • region — รหัสภูมิภาคที่ระบุเป็นค่า ccTLD ("โดเมนระดับบนสุด") แบบ 2 อักขระ พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้องด้วย
  • 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 บ่งชี้ถึงหน่วยงานพลเรือนที่มีการสั่งซื้อครั้งแรกซึ่งต่ำกว่าระดับประเทศ ส่วนในสหรัฐอเมริกา ระดับการดูแลระบบเหล่านี้คือรัฐ บางประเทศไม่ได้แสดงระดับการปกครองเหล่านี้ ในกรณีส่วนใหญ่ ชื่อย่อ admin_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 Codes สามารถใช้แทนที่อยู่ในสถานที่ซึ่งไม่มีที่อยู่จริง (เมื่ออาคารไม่มีหมายเลขกำกับหรือไม่มีชื่อถนน) ดูรายละเอียดได้ที่ 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> ...

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

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

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

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

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

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