刚开始使用Google Charts + displayMode = text的MissingKeyMapError

时间:2016-06-23 20:56:16

标签: google-maps google-maps-api-3 charts google-visualization

ERROR: Google Maps API error: MissingKeyMapError中描述的问题相同,但是:

  1. 这是使用Google Charts而非Google地图
  2. 与谷歌地图不同,在图表/可视化方面似乎没有关于如何获取密钥或使用密钥的文档(例如var map = new google.visualization.GeoChart(...)谷歌搜索“谷歌图表MissingKeyMapError”产生NOTHING。
  3. 如果从运行在localhost上的Web服务器提供html + js,则似乎不会发生此错误。只有当html + js保存到文件然后在浏览器中打开文件时才会发生这种情况
  4. 这个错误似乎只在设置displayMode ='text'时出现(也许在这样做时,Charts正在调用Maps,我需要以某种方式在那里传递一些Maps API密钥?)
  5. 这个问题几天前没有发生。谷歌搜索“MissingKeyMapError图表”产生NOTHING。

    以下代码剪切似乎重新创建了错误:

        var map = new google.visualization.GeoChart(document.getElementById('map2-container')),
            map_options = {
              region: 'US',
              resolution: 'provinces',
              displayMode: 'text',
            };
    
        map.draw(stateText, map_options);
    

    有关解决方法的任何建议吗?也许一些未记录的API选项/钩子/等?

    ==========更新=============

    我实施了如下接受的答案。可能有更好的方法:

    <script>
      function init() {
        var script = document.createElement('script');
        script.src = 'http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=drawMap&key=my_key';
        document.body.appendChild(script);
        google.load("visualization", "1.1", { packages:["geochart"], callback: 'drawMap'});
      }
    
      function drawMap() {
        ...
        var map = new google.visualization.GeoChart(...)
        ...
      }
    </script>
    
    ...
    
    <body onload="init()">
    

2 个答案:

答案 0 :(得分:4)

如果您正在使用图表API并使用google.charts.load(...)加载软件包,那么现在还有其他方法。将版本设置为“45”或“即将推出”,并提供您的API密钥

  var myMapsApiKey = "some_apikey_you've_got_already";
  google.charts.load('45', { mapsApiKey: myMapsApiKey, packages: [ 'geochart'] });

我指的是here并测试了这项工作。

答案 1 :(得分:1)

按照getting an API key for Google Maps上的说明操作,启用Google Charts API(如果可以启用)