โดยทั่วไปแล้ว คำว่าการแปลงพิกัดภูมิศาสตร์หมายถึงการเปลี่ยนที่อยู่แบบอ่านได้ของคนให้เป็นตำแหน่งบนแผนที่ กระบวนการที่ทําในทางตรงกันข้าม ซึ่งก็คือการเปลี่ยนตําแหน่งในแผนที่ให้เป็นที่อยู่ซึ่งมนุษย์อ่านได้ เรียกว่าการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ
คำขอการแปลงพิกัดภูมิศาสตร์ย้อนกลับ
พารามิเตอร์ที่จำเป็น
latlng
— พิกัดละติจูดและลองจิจูดที่ระบุตำแหน่งที่ต้องการที่อยู่ซึ่งอ่านง่ายที่สุดซึ่งอยู่ใกล้ที่สุดkey
— คีย์ API ของแอปพลิเคชัน คีย์นี้จะระบุแอปพลิเคชันของคุณเพื่อวัตถุประสงค์ในการจัดการโควต้า ดูวิธีรับกุญแจ
พารามิเตอร์ที่ไม่บังคับ
พารามิเตอร์ที่ไม่บังคับซึ่งคุณรวมไว้ในคำขอการจับคู่พิกัดภูมิศาสตร์ย้อนกลับได้มีดังนี้
language
— ภาษาที่จะแสดงผลลัพธ์- ดูรายการภาษาที่รองรับ Google อัปเดตภาษาที่รองรับอยู่บ่อยครั้ง รายการนี้จึงอาจไม่ครอบคลุมทั้งหมด
- หากไม่ได้ระบุ
language
เครื่องมือระบุพิกัดภูมิศาสตร์จะพยายามใช้ภาษาที่ต้องการตามที่ระบุไว้ในส่วนหัวAccept-Language
หรือภาษาของโดเมนที่ส่งคำขอ - โปรแกรมเปลี่ยนที่อยู่เป็นพิกัดภูมิศาสตร์จะพยายามอย่างเต็มที่เพื่อให้ที่อยู่ซึ่งอ่านได้สำหรับทั้งผู้ใช้และคนในพื้นที่ โดยจะแสดงผลที่อยู่ถนนเป็นภาษาท้องถิ่น ถอดเสียงเป็นอักษรที่ผู้ใช้อ่านได้หากจำเป็น โดยคำนึงถึงภาษาที่ต้องการ ระบบจะแสดงผลที่อยู่อื่นๆ ทั้งหมดเป็นภาษาที่ต้องการ ระบบจะแสดงผลองค์ประกอบที่อยู่ทั้งหมดเป็นภาษาเดียวกัน ซึ่งเลือกจากองค์ประกอบแรก
- หากไม่มีชื่อในภาษาที่ต้องการ ตัวระบุพิกัดภูมิศาสตร์จะใช้ชื่อที่ตรงกันมากที่สุด
region
— รหัสภูมิภาคที่ระบุเป็นค่า 2 อักขระ ccTLD ("โดเมนระดับบนสุด") พารามิเตอร์นี้ยังส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้องด้วยresult_type
— ตัวกรองที่อยู่อย่างน้อย 1 ประเภท โดยคั่นด้วยเครื่องหมายทับ (|
) หากพารามิเตอร์มีที่อยู่หลายประเภท API จะแสดงผลที่อยู่ทั้งหมดที่ตรงกับประเภทใดก็ได้ หมายเหตุเกี่ยวกับการประมวลผล: พารามิเตอร์result_type
จะไม่จํากัดการค้นหาให้อยู่ในรูปแบบที่อยู่ซึ่งระบุ แต่result_type
จะทําหน้าที่เป็นตัวกรองหลังการค้นหา โดย API จะดึงข้อมูลผลการค้นหาทั้งหมดสําหรับlatlng
ที่ระบุ จากนั้นจะทิ้งผลการค้นหาที่ไม่ตรงกับประเภทที่อยู่ซึ่งระบุไว้ ระบบรองรับค่าต่อไปนี้street_address
หมายถึงที่อยู่ซึ่งระบุถนนและเลขที่บ้านอย่างชัดเจนroute
หมายถึงเส้นทางที่มีชื่อ (เช่น "US 101")intersection
หมายถึงทางแยกที่สำคัญ ซึ่งมักจะเป็นทางแยกของถนนสายหลัก 2 สายpolitical
หมายถึงหน่วยงานทางการเมือง โดยปกติแล้ว ประเภทนี้จะระบุรูปหลายเหลี่ยมของการบริหารราชการส่วนกลางcountry
ระบุนิติบุคคลทางการเมืองระดับประเทศ และโดยปกติจะเป็นประเภทคำสั่งซื้อที่สูงที่สุดที่ตัวแปลงที่อยู่ระบุ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
หมายถึงนิติบุคคลภาครัฐระดับล่างสุดที่อยู่ภายใต้เขตท้องที่ สำหรับบางสถานที่อาจได้รับป้ายประเภทเพิ่มเติมประเภทใดประเภทหนึ่งต่อไปนี้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
ไม่ได้จํากัดการค้นหาให้อยู่เฉพาะประเภทสถานที่ที่ระบุ แต่location_type
จะทําหน้าที่เป็นตัวกรองหลังการค้นหา โดย API จะดึงข้อมูลผลลัพธ์ทั้งหมดสําหรับlocation_type
ที่ระบุ จากนั้นจะทิ้งผลลัพธ์ที่ไม่ตรงกับประเภทสถานที่ที่ระบุ ค่าที่รองรับมีดังนี้"ROOFTOP"
จะแสดงเฉพาะที่อยู่ซึ่ง Google มีข้อมูลตําแหน่งที่มีความแม่นยำถึงระดับที่อยู่"RANGE_INTERPOLATED"
จะแสดงเฉพาะที่อยู่ซึ่งแสดงค่าโดยประมาณ (โดยปกติจะอยู่บนถนน) ที่หาค่าเฉลี่ยระหว่างจุดที่แน่นอน 2 จุด (เช่น แยก) โดยปกติแล้ว ช่วงที่มีการประมาณจะบ่งชี้ว่าที่อยู่หลังคาไม่มีพิกัดภูมิศาสตร์"GEOMETRIC_CENTER"
จะแสดงเฉพาะจุดศูนย์กลางเชิงเรขาคณิตของสถานที่ เช่น รูปหลายเหลี่ยม (เช่น ถนน) หรือรูปหลายเหลี่ยม (ภูมิภาค)"APPROXIMATE"
จะแสดงเฉพาะที่อยู่ที่มีสถานะเป็น "ใกล้เคียง"
extra_computations
— ใช้พารามิเตอร์นี้เพื่อระบุฟีเจอร์เพิ่มเติมต่อไปนี้ในการตอบกลับADDRESS_DESCRIPTORS
— ดูรายละเอียดเพิ่มเติมใน คำอธิบายที่อยู่BUILDING_AND_ENTRANCES
— ดูรายละเอียดเพิ่มเติมได้ในส่วน ทางเข้าและขอบอาคาร
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
หมายเหตุ: ตัวกรองเหล่านี้ใช้ได้กับการเปลี่ยนรหัสพิกัดภูมิศาสตร์ย้อนกลับเท่านั้น
คำตอบจากการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ
รูปแบบของคำตอบการแปลงพิกัดภูมิศาสตร์แบบย้อนกลับจะเหมือนกับคำตอบการแปลงพิกัดภูมิศาสตร์ ดูการตอบกลับการแปลงพิกัดภูมิศาสตร์ ด้านล่างนี้คือรหัสสถานะที่เป็นไปได้ในการตอบกลับการแปลงพิกัดภูมิศาสตร์ย้อนกลับ
รหัสสถานะการแปลงพิกัดภูมิศาสตร์แบบย้อนกลับ
ฟิลด์ "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_code
ภายในคำตอบการแปลงพิกัดภูมิศาสตร์มีโค้ด Plus ที่ใกล้เคียงกับละติจูดและลองจิจูดที่ค้นหามากที่สุด
นอกจากนี้ อาร์เรย์ผลลัพธ์ JSON ในกรณีส่วนใหญ่จะมีผลการจับคู่พิกัดภูมิศาสตร์แบบสมบูรณ์ที่มีประเภท plus_code
และที่อยู่ที่มีรหัสบวก ระยะทางระหว่าง Plus Code ที่ถอดรหัสแล้วกับจุดที่ขอจะอยู่ที่ไม่เกิน 10 เมตร