You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter获取谷歌地图地点搜索结果及google_maps_place_picker版本冲突解决

你之前直接跳转系统谷歌地图APP的实现方案无法获取用户搜索后的地点结果,因为外部应用不会主动回传数据到你的APP,必须在应用内实现地点选择功能,以下是版本冲突解决及功能实现方案:

版本冲突解决方法

方案1:依赖版本覆盖

直接在你的pubspec.yaml文件中添加依赖覆盖节点,强制指定项目当前使用的provider和http版本,无需降级现有依赖:

dependency_overrides:
  provider: ^6.0.1
  http: ^0.13.4

添加完成后重新执行flutter pub get即可解决版本冲突。

方案2:替换维护中的新版本包

你当前使用的google_maps_place_picker 1.0.1版本已经停止维护,适配的依赖版本过低,你可以替换为该包的社区维护分叉版,默认适配高版本的provider和http,无需额外配置覆盖规则。

功能实现步骤

  1. 先前往谷歌云控制台开通以下服务,获取API密钥:
    • Maps SDK for Android
    • Maps SDK for iOS
    • Places API
  2. 在原生项目中配置API密钥:
    • Android端在AndroidManifest.xml的application节点下添加meta-data配置密钥
    • iOS端在Info.plist中添加GMSServicesKey字段配置密钥
  3. 替换原有跳转逻辑,改为应用内打开地点选择页,示例代码如下:
// 先在状态类中定义文本控制器,用于后续显示选中地址
final TextEditingController _addressController = TextEditingController();

// 替换原有的InkWell点击逻辑
InkWell(
  onTap: () {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => PlacePicker(
          apiKey: "你申请的谷歌API密钥",
          onPlacePicked: (Place result) {
            // 选中地点后回调,先打印到控制台
            print("选中地点名称:${result.name}");
            print("完整地址:${result.formattedAddress}");
            print("经纬度:${result.geometry?.location.lat}, ${result.geometry?.location.lng}");
            // 需要显示到文本框直接赋值给控制器即可
            setState(() {
              _addressController.text = result.formattedAddress ?? "";
            });
            // 关闭地点选择页
            Navigator.pop(context);
          },
          initialPosition: LatLng(_currentPosition.latitude, _currentPosition.longitude),
          useCurrentLocation: true,
        ),
      ),
    );
  },
  child: const Text("选择地点"),
),
// 页面中添加显示地址的文本框
TextField(
  controller: _addressController,
  decoration: const InputDecoration(hintText: "选中的地址会显示在这里"),
  readOnly: true,
)

如果不想依赖第三方地点选择组件,也可以直接调用谷歌Places Autocomplete接口自行实现搜索功能,完全自主可控,不会产生额外依赖冲突问题。

内容的提问来源于stack exchange,提问作者TimeToCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:24:03