Исключение произошло. _TypeError (тип 'String' не является подтипом типа 'int' для 'index') - PullRequest
0 голосов
/ 21 апреля 2020

Этот запрос я использую, он только получает название места и выдает как ошибку, пытаясь получить окрестности.

Ошибка:

Произошло исключение. _TypeError (тип 'String' не является подтипом типа 'int' для 'index') "

Future<List<String>> searchNearby(String keyword) async{
    var dio = Dio();
    var url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json';
    var parameters = {
      'key': myKey,
      'location': '$lat, $lng',
      'radius': '5000',
      'keyword': keyword,
      'rankBy': 'distance',
      }; 

      var response = await dio.get(url, queryParameters:parameters);
      return response.data['results']
        .map<String>((result) => result['name'].toString())
        .map<String>((result) => result['vicinity'].toString())
        .toList();
  }

json результат:

    0:"geometry" -> Map (2 items)
    1:"icon" -> "https://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png"
    2:"id" -> "f31b24b8820ec3f5a0a37233f893f79e730fbd0d"
    3:"name" -> "PureGym Glasgow Clydebank"
    4:"opening_hours" -> Map (1 item)
    5:"photos" -> List (1 item)
    6:"place_id" -> "ChIJk1XBuqtPiEgRE_5-hxEgBW4"
    7:"plus_code" -> Map (2 items)
    8:"rating" -> 4.3
    9:"reference" -> "ChIJk1XBuqtPiEgRE_5-hxEgBW4"
    10:"scope" -> "GOOGLE"
    11:"types" -> List (4 items)
    key:"results"
    value:List (20 items)
    [0]:Map (14 items)
    12:"user_ratings_total" -> 76
    13:"vicinity" -> "11 / 12 Clydebank"

1 Ответ

0 голосов
/ 21 апреля 2020

Как насчет этого?

от

Future<List<String>> searchNearby(String keyword) async{

до

Future<List<List<String>>> searchNearby(String keyword) async {

и

return response.data['results']
    .map<List<String>>((result) =>
        [result['name'].toString(), result['vicinity'].toString()])
    .toList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...