首页 > 解决方案 > Google Maps V3 - 覆盖 API KEY

问题描述

我正在使用默认脚本标签加载谷歌地图,如下所示

<script async defer
      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>

页面加载后有没有办法覆盖这个 API_KEY ?或者甚至在不影响原始实例的情况下创建另一个谷歌地图实例?

这是 AB 测试所必需的,以避免它影响整个网站使用的原始 API_KEY。

iframe 方法可能是不可能的,因为它需要在地图中附加几个标记。

谢谢。

标签: javascriptgoogle-mapsgoogle-maps-api-3

解决方案


如果其他人有同样的问题,首先需要重置当前的地图实例

google.maps = undefined;

然后你可以只包含你自己的脚本

var scriptNode = document.createElement('script');
scriptNode.src = GOOGLE_MAPS_URL_WITH_NEW_KEY;
document.head.append(scriptNode);

它以这种方式工作。

注意:如果您有任何其他依赖项,例如 Infobox,您可能需要再次添加这些依赖项


推荐阅读