Флаттер, как добраться до провинции и городов?

#flutter #dart

Вопрос:

Я ищу плагин, с помощью которого я могу получить провинции и города только для одной страны. Имею в виду, что я не хочу выбирать страну.

Я нашел этот плагин, который хорош, но проблема в том, что он запрашивает выбор страны.

https://pub.dev/packages/restcountries

Комментарии:

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);
}