I'm writing an Android app, which uses location services. I want to de开发者_开发知识库trmine the country region, in which the user is located. How can I achieve that ?
You can make a use of the Google Geocoder API
http://code.google.com/apis/maps/documentation/geocoding/
All you need to do is to make appropriate query, e.g in the request to the Google Geocoder providing the user's location in Latitude and Longitude format (in the url), and then parse the JSON/XML response. You can see that in the example that is provided there is JSON string that signifies the country:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"address_components": [ {
"long_name": "1600",
"short_name": "1600",
"types": [ "street_number" ]
}, {
"long_name": "Amphitheatre Pkwy",
"short_name": "Amphitheatre Pkwy",
"types": [ "route" ]
}, {
"long_name": "Mountain View",
"short_name": "Mountain View",
"types": [ "locality", "political" ]
}, {
"long_name": "California",
"short_name": "CA",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States", // <----- HERE IS THE COUNTRY NAME.
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "94043",
"short_name": "94043",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 37.4219720,
"lng": -122.0841430
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 37.4188244,
"lng": -122.0872906
},
"northeast": {
"lat": 37.4251196,
"lng": -122.0809954
}
}
}
} ]
}
If I was unclear or short on the link you can read more. Or use Geocoder class from Google Maps API for android
精彩评论