Những gì bạn đang tìm kiếm được gọi là mã hóa địa lý ngược . Google cung cấp dịch vụ mã hóa địa lý ngược phía máy chủ thông qua API mã hóa địa lý của Google mà bạn có thể sử dụng cho dự án của mình.
Đây là cách phản hồi cho yêu cầu sau sẽ trông như thế nào:
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
Phản ứng:
{
"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[] ...
Bạn cũng có thể chọn nhận phản hồi trong xml thay vì json, bằng cách chỉ cần thay thế json cho xml trong URI yêu cầu:
http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false
Theo như tôi biết, Google cũng sẽ trả lại tên tương tự cho các thành phần địa chỉ, đặc biệt là đối với các tên cấp cao như tên quốc gia và tên thành phố. Tuy nhiên, hãy nhớ rằng mặc dù kết quả rất chính xác cho hầu hết các ứng dụng, bạn vẫn có thể tìm thấy lỗi chính tả không thường xuyên hoặc kết quả không rõ ràng.