โดยทั่วไปแล้ว คำว่าการระบุพิกัดทางภูมิศาสตร์หมายถึงการแปลที่อยู่ที่มนุษย์อ่านได้เป็นตำแหน่งในแผนที่ กระบวนการตรงกันข้ามคือการแปลตำแหน่งบนแผนที่เป็นที่อยู่ที่มนุษย์อ่านได้เรียกว่าการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ
คำขอการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ
พารามิเตอร์ที่จำเป็น
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
บ่งชี้ถึงหน่วยงานทางการเมืองระดับชาติ และโดยทั่วไปจะเป็นประเภทลำดับสูงสุดที่ส่งกลับโดย Geocoderadministrative_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.codespostal_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 เมตร