#flutter #dart
Вопрос:
Я ищу плагин, с помощью которого я могу получить провинции и города только для одной страны. Имею в виду, что я не хочу выбирать страну.
Я нашел этот плагин, который хорош, но проблема в том, что он запрашивает выбор страны.
Комментарии:
1. Я не очень хорошо понимаю вашу просьбу:
I can get province and cities for one country only. Mean I dont want to select country
. Здесь есть противоречие. Можете ли вы объяснить это лучше? Какая страна вас интересует?
Ответ №1:
Из примеров по этой ссылке
Список городов = ждем api.getCities( код страны: ‘id’, регион: ‘Джава Тимур’, ключевое слово: ‘mal’);
Поскольку вы уже знаете, из какой страны хотите получить города, просто назначьте код этой страны countryCode
,
Например, если вы хотите cities
из Соединенных Штатов с ключевым словом ar
,
List<City> cities = await api.getCities(
countryCode: 'us', keyword: 'ar');
Ответ №2:
Я должен согласиться с приведенным выше ответом. Учитывая округ, вы можете сделать серию звонков, чтобы получить нужный набор данных.
countries = await api.getCountries();
— Вернет страны, которые есть у сервиса, затем выполните поиск по списку, чтобы найти ту, которую вы хотите.
regions = await api.getRegions(countryCode: 'id');
— Затем вы получите регионы для страны, я предполагаю, что вы получите код с первого звонка, в противном случае хорошим местом для начала кода было бы использовать коды стран IEEE.
Наконец, используйте регионы, которые у вас есть, чтобы получить города;
await api.getCities(countryCode: 'id', region: 'Jawa Timur');
Собрав все это вместе, вы получили бы нечто подобное… (Я не смотрел спецификацию API, поэтому предположение о члене в этом цикле «region.name» скорее всего, неверно)
import 'package:restcountries/restcountries.dart';
void main() async {
var api = RestCountries.setup(Platform.environment['API_KEY']);
List<Country> countries;
List<Region> regions;
List<City> cities;
countries = await api.getCountries();
// Search here for your country
regions = await api.getRegions(countryCode: '*YOUR COUNTRY CODE HERE*');
// Now we loop to get cities in every region.
regions.forEach((region){
cities = await api.getCities(countryCode: '*YOUR COUNTRY CODE HERE*', region: region.name);
});
print(regions);
print(cities);
}