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

Google Map API地图异常:仅显示标记点,背景呈灰色

Google Maps API 地图背景灰色(仅标记/路线显示)问题排查与解决

问题核心表现

此前正常运行的Google Map API路径绘制功能,现在仅显示标记点和路线,地图背景呈灰色瓦片;调试发现调用https://maps.googleapis.com/$rpc/google.internal.maps.mapsjs.v1.MapsJsInternalService/GetViewportInfo返回400 Bad Request,提示Invalid JSON payload received. Unexpected token.__vtrftk=sid:a45953c^;仅服务器根目录的测试文件可正常工作,其他位置失效。

针对性解决方案

1. 修复API密钥配置与引用方式

当前使用的无密钥API引用(http://maps.googleapis.com/maps/api/js?&sensor=true)已不符合Google Maps API的最新要求,非根目录页面可能因域名/路径未加入密钥允许列表导致瓦片加载失败:

  • 替换API引用为带密钥的HTTPS格式:
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=你的API密钥&sensor=true"></script>
    
  • 登录Google Cloud控制台,确保:
    • Maps JavaScript API已启用
    • API密钥的应用限制中包含当前页面的域名及路径(可暂时放宽限制测试)

2. 移除页面注入的干扰令牌

错误中的__vtrftk令牌是服务器/页面框架(从字段ID判断疑似Vtiger CRM)自动注入的验证参数,干扰了Google Maps API的请求:

  • 在地图初始化前清理URL中的干扰参数:
    // 初始化地图前执行
    const cleanUrl = window.location.href.split('__vtrftk=')[0];
    window.history.replaceState({}, document.title, cleanUrl);
    

3. 升级老旧jQuery版本

你使用的jQuery 1.6.4版本过于陈旧,可能与新版Google Maps API存在兼容性冲突,根目录测试文件可能环境不同:

  • 替换为新版jQuery引用:
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    

4. 调整地图容器渲染时机

动态添加地图容器可能因非根目录页面DOM加载顺序问题,导致容器尺寸计算异常:

  • 提前在HTML中定义地图容器(默认隐藏):
    <div id="mapdiv" style="width:100%;height:600px;margin-bottom: 10px;display:none;"></div>
    
  • 满足条件时显示容器:
    jQuery("#mapdiv").show();
    

5. 修复混合内容问题

若当前页面为HTTPS,但资源引用使用HTTP协议,浏览器会阻止混合内容加载:

  • 将所有外部资源引用改为HTTPS协议(已在上述方案中体现)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:20:30