Future<List<String>> getAutoCompleteResponse(String query)async{
var prs=[];
String key="<API-KEY>";
final places = GoogleMapsPlaces(apiKey: key);
PlacesAutocompleteResponse placesAutocompleteResponse = await places.autocomplete(query);
prs = placesAutocompleteResponse.predictions.map((prediction)=>prediction.description).toList();
print('Predictions: '+prs.toString());
return prs;
}
TextField(
showCursor: false,
decoration: InputDecoration(
prefixIcon: Icon(Icons.search,color: Colors.blue,),
suffixStyle: TextStyle(fontSize: 20,color: Colors.blue),
hintStyle: TextStyle(fontSize: 20,color: Colors.blue),
hasFloatingPlaceholder: true,
alignLabelWithHint: true,
hintText: "Type to Search",
//border: OutlineInputBorder(borderRadius: BorderRadius.circular(5.0))
),
controller: textEditingController,
onChanged: (query)async{
predictions = await _geoService.getAutoCompleteResponse(query);
setState(() {
});
},
),
我已经附上了所需的代码,
我有一个文本字段,在其中我输入的每个字符上,我都会在谷歌地图上查询自动完成,我面临的主要问题是让我们举一个例子:
有一个现有的地址被称为"Foo Apartments">
现在,每当我键入"f"时,它都表示以"f"开头的预测,当我键入"o"时,即使存在预测,也没有预测,即使我输入了地址的确切名称,也会发生同样的事情,最坏的情况是,当我输入"f"后,所有预测都消失了,现在,如果我删除了字母"o",然后我也没有得到任何预测。我可以研究哪些可能的问题来解决这个问题
只有当地图api报告了一些错误代码时,我才得到空预测。每次我收到空预测时,它都会出现OVER_QUERY_LMIT错误,因此我激活了计费帐户,它就像奶酪一样工作。
如果你得到空的预测,我相信你得到的是一个错误状态代码
https://developers.google.com/maps/documentation/javascript/places#place_search_responses