google_maps_place_picker包搜索无结果、拖拽选点不显示地址描述问题
问题1:搜索地点仅显示「Searching」无结果的解决方案
- 确认你的Google Cloud控制台已为使用的API密钥开通以下权限:
- Places API
- 对应运行平台的Maps SDK(Android端开Maps SDK for Android,iOS端开Maps SDK for iOS)
- Geocoding API
- 确认API密钥已正确替换代码中的
my_api_key占位符,且密钥没有设置错误的应用限制、IP限制 - 确认Google Cloud账户已绑定有效支付方式,地图类API未开通计费会导致请求被拦截,无结果返回
- 你代码中设置了
region: 'tz'(坦桑尼亚区域限制),如果搜索的地点不在坦桑尼亚范围内,会导致无匹配结果,可根据实际使用区域调整该参数,或者直接移除该参数取消区域限制 - 取消
usePlaceDetailSearch参数的注释,设为true,开启地点详情查询能力 - 确保运行设备的网络可以正常访问Google服务,国内网络未翻墙的情况下无法请求Google地图相关接口
问题2:拖拽选点后仅显示白框无地点描述的解决方案
你自定义了selectedPlaceWidgetBuilder的渲染逻辑,当前逻辑里仅返回了「Pick Here」按钮,没有渲染选中地点的描述信息,修改该回调内的代码即可,参考修改示例:
selectedPlaceWidgetBuilder: (_, selectedPlace, state, isSearchBarFocused) { print("state: $state, isSearchBarFocused: $isSearchBarFocused"); return isSearchBarFocused ? Container() : FloatingCard( bottomPosition: 0.0, leftPosition: 0.0, rightPosition: 0.0, width: 500, borderRadius: BorderRadius.circular(12.0), child: state == SearchingState.Searching ? Center(child: CircularProgressIndicator()) : Padding( padding: const EdgeInsets.all(16.0), child: Column( mainAxisSize: MainAxisSize.min, children: [ // 新增地点描述显示 Text( selectedPlace?.formattedAddress ?? "未获取到地点信息", textAlign: TextAlign.center, ), SizedBox(height: 12), RaisedButton( child: Text("Pick Here"), onPressed: () { print("do something with [selectedPlace] data"); Navigator.of(context).pop(); }, ), ], ), ), ); },
修改后拖拽选点完成后,就会在按钮上方显示选中的地点地址信息。
内容的提问来源于stack exchange,提问作者mcfred
相关产品推荐
相关产品推荐

