Google自动完成在Flutter中不返回结果

js81xvg6  于 2023-02-05  发布在  Flutter
关注(0)|答案(1)|浏览(109)

在我的应用程序中,我试图添加一个功能,允许用户通过输入地址来改变他们的位置,利用谷歌自动完成,并利用它来移动相机的位置。我是通过使用flutter_google_places来实现这一点的。当我点击我的搜索框时,我得到了谷歌搜索屏幕,但没有返回。以下是我的代码:

Widget _buildSearchField() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Container(
          width: 350,
          decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(10), color: Colors.white),
          child: EnsureVisibleWhenFocused(
              focusNode: _descriptionFocusNode,
              child: TextField(
                controller: _emailController,
                keyboardType: TextInputType.emailAddress,
                textCapitalization: TextCapitalization.words,
                decoration: InputDecoration(
                    suffixIcon: IconButton(
                      icon: Icon(FontAwesomeIcons.search),
                      onPressed: () {},
                      color: Colors.teal,
                    ),
                    border: InputBorder.none,
                    hintText: "Find Where Can You Go?",
                    contentPadding: EdgeInsets.only(left: 10.0, top: 10.0),
                    fillColor: Colors.transparent,
                    filled: true),
                maxLines: null,
                onTap: () async {
                  Prediction p = await PlacesAutocomplete.show(
                      context: context, apiKey: gKey);
                  displayPrediction(p);
                  print(p);
                },
              )),
        ),
      ],
    );
  }


  Future<Null> displayPrediction(Prediction p) async {
    if (p != null) {
      PlacesDetailsResponse detail =
          await _places.getDetailsByPlaceId(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);
      print(address);
    } else {
      print('Not working');
    }
    return;
  }

我不确定在返回搜索输入的结果时遗漏了什么。

dm7nw8vv

dm7nw8vv1#

Google Cloud提供$300的免费试用版,适用于您创建的第一个付费帐户。由于您提到您尚未启用付费帐户,您的问题可能属于here
在免费试用结束时或之前,您必须将第一个云计费帐户升级为付费帐户,以避免对GoogleMap平台的使用造成任何干扰
这就是为什么您可能会观察到它不返回任何东西,因为有一个要求启用您的帐户。

相关问题