สิ่งที่คุณกำลังมองหาที่เรียกว่าReverse Geocoding Google ให้บริการ geocoding ย้อนกลับฝั่งเซิร์ฟเวอร์ผ่านGoogle Geocoding APIซึ่งคุณควรจะใช้สำหรับโครงการของคุณได้
นี่คือลักษณะการตอบสนองต่อคำขอต่อไปนี้:
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
การตอบสนอง:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "275-291 Bedford Ave, Brooklyn, NY 11211, USA",
"address_components": [ {
"long_name": "275-291",
"short_name": "275-291",
"types": [ "street_number" ]
}, {
"long_name": "Bedford Ave",
"short_name": "Bedford Ave",
"types": [ "route" ]
}, {
"long_name": "New York",
"short_name": "New York",
"types": [ "locality", "political" ]
}, {
"long_name": "Brooklyn",
"short_name": "Brooklyn",
"types": [ "administrative_area_level_3", "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" ]
} ],
"geometry": {
"location": {
"lat": 40.7142298,
"lng": -73.9614669
},
"location_type": "RANGE_INTERPOLATED",
"viewport": {
"southwest": {
"lat": 40.7110822,
"lng": -73.9646145
},
"northeast": {
"lat": 40.7173774,
"lng": -73.9583193
}
}
}
},
... Additional results[] ...
คุณยังสามารถเลือกรับการตอบกลับเป็น xml แทน json ได้โดยเพียงแค่แทนที่ json สำหรับ xml ใน URI คำขอ:
http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false
เท่าที่ฉันทราบ Google จะส่งคืนชื่อเดิมสำหรับส่วนประกอบที่อยู่โดยเฉพาะสำหรับชื่อระดับสูงเช่นชื่อประเทศและชื่อเมือง อย่างไรก็ตามโปรดทราบว่าแม้ว่าผลลัพธ์จะแม่นยำมากสำหรับแอปพลิเคชันส่วนใหญ่ แต่คุณยังคงพบว่ามีการสะกดผิดหรือผลลัพธ์ที่ไม่ชัดเจนในบางครั้ง