使用 flutter_google_places 的自动完成搜索不起作用?
Autocomplete search with flutter_google_places doesn't work?
我正在开发我的第一个更复杂的项目,类似于优步应用程序的想法。
我按照这个问题的说明去做
但是当我尝试搜索地址时,什么也没有出现
我正在使用 GetX 进行状态管理
这是我的代码,
在视图中:
child: TextField(
onTap: () async {
Prediction p = await PlacesAutocomplete.show(
context: Get.context,
apiKey: "my_apikey_is_here",
language: "pt",
components: [Component(Component.country, "br")],
mode: Mode.overlay);
controller.displayPrediction(p);
},
controller: _controllerDestino,
decoration: InputDecoration(
icon: Container(
margin: EdgeInsets.only(left: 10),
child: Icon(
Icons.local_taxi,
color: Colors.black,
),
),
hintText: "Digite o destino",
border: InputBorder.none),
)
控制器中的方法和语句:
static const kGoogleApiKey = "my_ApiKey_isHere";
GoogleMapsPlaces places = GoogleMapsPlaces(apiKey: kGoogleApiKey);
Future<Null> displayPrediction(Prediction p) async {
if (p != null) {
PlacesDetailsResponse detail =
await places.getDetailsByPlaceId(p.placeId);
var placeId = p.placeId;
double lat = detail.result.geometry.location.lat;
double lng = detail.result.geometry.location.lng;
var address = await Geocoder.local.findAddressesFromQuery(p.description);
print(lat);
print(lng);
update();
}
}
在 Google Cloud Platform 上,我对 Api 地方的请求 100% 都会导致错误,如下图所示
我看到有些论坛说我必须link这个项目有一个billing account,我做了,但是问题依旧
如果有人能帮助我,先谢谢了
我发现了问题。
我的 Api 密钥仅限于“Android 应用程序”
但是,对 Api 个地点 Google 的访问是通过 HTTP 请求完成的。
由于我的密钥受到限制,我的所有请求都导致“访问被拒绝”。
需要更改我的API键的限制,如下图所示:
请记住,更改为“none”对您的应用程序不安全,但在本例中它只是一个测试应用程序,所以没问题。
我正在开发我的第一个更复杂的项目,类似于优步应用程序的想法。
我按照这个问题的说明去做
但是当我尝试搜索地址时,什么也没有出现
我正在使用 GetX 进行状态管理
这是我的代码, 在视图中:
child: TextField(
onTap: () async {
Prediction p = await PlacesAutocomplete.show(
context: Get.context,
apiKey: "my_apikey_is_here",
language: "pt",
components: [Component(Component.country, "br")],
mode: Mode.overlay);
controller.displayPrediction(p);
},
controller: _controllerDestino,
decoration: InputDecoration(
icon: Container(
margin: EdgeInsets.only(left: 10),
child: Icon(
Icons.local_taxi,
color: Colors.black,
),
),
hintText: "Digite o destino",
border: InputBorder.none),
)
控制器中的方法和语句:
static const kGoogleApiKey = "my_ApiKey_isHere";
GoogleMapsPlaces places = GoogleMapsPlaces(apiKey: kGoogleApiKey);
Future<Null> displayPrediction(Prediction p) async {
if (p != null) {
PlacesDetailsResponse detail =
await places.getDetailsByPlaceId(p.placeId);
var placeId = p.placeId;
double lat = detail.result.geometry.location.lat;
double lng = detail.result.geometry.location.lng;
var address = await Geocoder.local.findAddressesFromQuery(p.description);
print(lat);
print(lng);
update();
}
}
在 Google Cloud Platform 上,我对 Api 地方的请求 100% 都会导致错误,如下图所示
我看到有些论坛说我必须link这个项目有一个billing account,我做了,但是问题依旧
如果有人能帮助我,先谢谢了
我发现了问题。
我的 Api 密钥仅限于“Android 应用程序”
但是,对 Api 个地点 Google 的访问是通过 HTTP 请求完成的。
由于我的密钥受到限制,我的所有请求都导致“访问被拒绝”。
需要更改我的API键的限制,如下图所示:
请记住,更改为“none”对您的应用程序不安全,但在本例中它只是一个测试应用程序,所以没问题。