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

Flutter集成谷歌地理编码API报错:URI未指定主机

问题解决方案

核心错误原因

报错提示No host specified in URI https:maps.googleapis.com/...,是因为API地址格式错误:https后缺少了//,导致URI无法识别主机地址。


具体修复步骤

1. 修正API URL格式

修改Assistants类中的apiUrl,补充https://的完整协议前缀,同时替换占位的API密钥:

class Assistants {
  static Future<String> searchAddressForGeographicCoOrdinates(
      Position position) async {
    String humanReadableAddress = "";
    // 修复协议前缀,替换为你的实际API密钥
    String apiUrl =
        "https://maps.googleapis.com/maps/api/geocode/json?latlng=${position.latitude},${position.longitude}&key=${mapKey}";
    // 注意:确保map_key.dart中已定义const mapKey = "你的Google Geocoding API密钥";
    var requestResponse = await RequestAssistant.receiveRequest(apiUrl);
    if (requestResponse != "Failed" && requestResponse["results"].isNotEmpty) {
      humanReadableAddress = requestResponse["results"][0]["formatted_address"];
    } else {
      humanReadableAddress = "无法解析当前地址";
    }
    return humanReadableAddress;
  }
}

2. 修复类名与方法名拼写错误

你的请求助手类名写成了RequsstAssistant(多了一个s),方法名receiveRequet拼写错误,统一修正为:

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';

class RequestAssistant {
  static Future<dynamic> receiveRequest(String url) async {
    try {
      http.Response httpResponse = await http.get(Uri.parse(url));
      if (httpResponse.statusCode == 200) {
        String responseData = httpResponse.body;
        var decodeResponseData = jsonDecode(responseData);
        return decodeResponseData;
      } else {
        return "Error";
      }
    } catch (exp) {
      return "Failed";
    }
  }
}

3. 替换有效API密钥

确保你的Google Cloud账号已启用Geocoding API,并将map_key.dart中的占位符替换为实际可用的密钥,避免因权限问题导致请求失败。


额外优化建议

  • 处理控制器空指针风险:在locateUserPosition中增加非空判断
    if (newgoogleMapController != null) {
      newgoogleMapController!.animateCamera(CameraUpdate.newCameraPosition(cameraPosition));
    }
    
  • 地址解析失败时给用户明确反馈,避免空字符串返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:19:01