如何在 Autocomplete Places _ Places API 中获取城市和州名称
How to get city and state name in Autocomplete Places _ Places API
我正在使用 Places Autocomplete 从用户中选择城市,它工作正常,
但现在我想要城市和州名..
我的代码..
正在初始化
List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Intent intent = new Autocomplete.IntentBuilder(
AutocompleteActivityMode.OVERLAY, fields)
.setTypeFilter(TypeFilter.CITIES)
.setCountry("IN")
.build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
onActivity 结果
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
//Place place = Autocomplete.getPlaceFromIntent(data);
Place place = Autocomplete.getPlaceFromIntent(data);
edit_profile_city_editText.setText(place.getName());
} else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
Status status = Autocomplete.getStatusFromIntent(data);
Log.i("Autocomplete error", status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
}
}
从搜索栏中选择城市时,它同时显示城市和州..
例如:钦奈
印度泰米尔纳德邦
请帮助如何获得州名...
试试这样:
Geocoder geocoder = new Geocoder(getContext(), Locale.getDefault());
List<Address> addresses = new ArrayList<>();
addresses = geocoder.getFromLocation(lat, lng, 1);
String country = addresses.get(0).getCountryName();
我认为这些对你有用;
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
String cityName = addresses.get(0).getAddressLine(0);
String stateName = addresses.get(0).getAddressLine(1);
String countryName = addresses.get(0).getAddressLine(2);
或
String address = addresses.get(0).getSubLocality();
String cityName = addresses.get(0).getLocality();
String stateName = addresses.get(0).getAdminArea();
这样使用:-
和onActivityResult
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Place place = Autocomplete.getPlaceFromIntent(data);
LatLng latLng = place.getLatLng();
double MyLat = latLng.latitude;
double MyLong = latLng.longitude;
Geocoder geocoder = new Geocoder(EditProfileActivity.this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
String stateName = addresses.get(0).getAdminArea();
String cityName = addresses.get(0).getLocality();
edit_profile_city_editText.setText(place.getName() + "," + stateName);
} catch (IOException e) {
e.printStackTrace();
}
希望这会有所帮助 you.Thanks..
我正在使用 Places Autocomplete 从用户中选择城市,它工作正常, 但现在我想要城市和州名.. 我的代码..
正在初始化
List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Intent intent = new Autocomplete.IntentBuilder(
AutocompleteActivityMode.OVERLAY, fields)
.setTypeFilter(TypeFilter.CITIES)
.setCountry("IN")
.build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
onActivity 结果
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
//Place place = Autocomplete.getPlaceFromIntent(data);
Place place = Autocomplete.getPlaceFromIntent(data);
edit_profile_city_editText.setText(place.getName());
} else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
Status status = Autocomplete.getStatusFromIntent(data);
Log.i("Autocomplete error", status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
}
}
从搜索栏中选择城市时,它同时显示城市和州.. 例如:钦奈 印度泰米尔纳德邦 请帮助如何获得州名...
试试这样:
Geocoder geocoder = new Geocoder(getContext(), Locale.getDefault());
List<Address> addresses = new ArrayList<>();
addresses = geocoder.getFromLocation(lat, lng, 1);
String country = addresses.get(0).getCountryName();
我认为这些对你有用;
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
String cityName = addresses.get(0).getAddressLine(0);
String stateName = addresses.get(0).getAddressLine(1);
String countryName = addresses.get(0).getAddressLine(2);
或
String address = addresses.get(0).getSubLocality();
String cityName = addresses.get(0).getLocality();
String stateName = addresses.get(0).getAdminArea();
这样使用:-
和onActivityResult
if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Place place = Autocomplete.getPlaceFromIntent(data);
LatLng latLng = place.getLatLng();
double MyLat = latLng.latitude;
double MyLong = latLng.longitude;
Geocoder geocoder = new Geocoder(EditProfileActivity.this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
String stateName = addresses.get(0).getAdminArea();
String cityName = addresses.get(0).getLocality();
edit_profile_city_editText.setText(place.getName() + "," + stateName);
} catch (IOException e) {
e.printStackTrace();
}
希望这会有所帮助 you.Thanks..