【问题标题】:Can't make Google Maps Engine work on my website无法让 Google Maps Engine 在我的网站上运行
【发布时间】:2014-02-07 16:15:03
【问题描述】:

我正在尝试将我在谷歌地图引擎中制作的地图嵌入我的网站。我不能让简单的谷歌地图引擎的代码工作。我复制粘贴谷歌地图引擎的示例代码并根据我自己的项目更改详细信息,但它不起作用。我看到了基本地图,但没有看到任何图层。我添加了我自己的 API 密钥,它给出了错误,即使没有它,它也不起作用。我暂时没有在任何服务器上工作,这与服务器问题有什么关系吗?如果有人能告诉我哪里做错了,我将不胜感激。

这是我的代码:

<!DOCTYPE html>
<html>
  <head>
  <title>Maps Engine Layer</title>

 <style>
  html, body, #map-canvas {
    height: 100%;
    margin: 0px;
    padding: 0px
  }
 </style>
 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

    <script>
       function initialize() {
            var mapOptions = {
            zoom: 14,
            center: new google.maps.LatLng(53.467216, -2.233701)
              };

             var map = new google.maps.Map(document.getElementById('map-canvas'),
             mapOptions);

            var mapsEngineLayer = new google.maps.visualization.MapsEngineLayer({
            layerId: '16665525185230662248-09052745394509652502',
            map: map
              });
            }
            google.maps.event.addDomListener(window, 'load', initialize);

       </script>
     </head>
    <body>
        <div id="map-canvas"></div>
     </body>
    </html>

【问题讨论】:

  • 你的代码给了我一个javascript错误:Uncaught TypeError: Cannot read property 'MapsEngineLayer' of undefined
  • 感谢您的回复。是的,我收到了相同的代码,但是这段代码与谷歌地图引擎教程给出的代码完全相同,所以我唯一更改的属性是图层 ID 和坐标,我将它们替换为我的项目案例。这就是为什么我无法理解地图和它的图层有什么问题,因为它已经是我的 Google 地图引擎帐户中的已发布地图,我可以正确查看 Google 地图引擎帐户中的图层。 developers.google.com/maps/documentation/javascript/examples/…

标签: google-maps google-app-engine


【解决方案1】:

您至少需要包含visualization library

从您引用的示例中:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=visualization&sensor=false"></script>

之后我得到这个错误:

Failed to load resource: the server responded with a status of 404 (Not Found) https://accounts.google.com/ServiceLogin?service=mapsengine&passive=1209600…Fmaproot%2Fjson%3Foutput%3Djsonp%26access_token%26callback%3D_xdc_._w3rg1a

也许您需要允许访问。

【讨论】:

  • 是的,它也不适用。在教程中它说在商业项目或非商业项目中需要添加 API 密钥而不是 library=visualization。我这样做了,但由于访问被拒绝,它给了我错误。我在stackoverflow中看到了关于这个错误的类似问题的不同答案,答案是它应该在没有API代码的情况下工作,它应该工作。我不明白这里出了什么问题
  • 你能提供一个链接到那个说这个的 SO 问题/答案吗?你公开地图了吗?
  • 是的,当然!这是我在我的谷歌地图引擎帐户中看到的我的地图属性:修改查看者:地图查看者创建新 |修改我阅读了这两个并且在所有 cmets 中我注意到他们的代码在没有 API 密钥的情况下工作,而我的即使没有代码也无法工作stackoverflow.com/questions/11088791/…stackoverflow.com/questions/12301269/…
  • documentation 说“Google Maps API for Business 开发人员必须使用 client 参数代替 key 参数”,而不是您所说的。您发布的关于 MapsEngineLayer 的链接的问题都没有,只有 API(通常不需要密钥)可能与 MapsEngineLayer 相关。
  • 是的,对不起,我的误会。
【解决方案2】:

我认为您需要启用 google maps engine API 以允许您的应用访问可视化。并将&amp;libraries=visualization 添加到 api uri 请求中。

转到 Google API 控制台页面,为您的项目 api 启用它。

【讨论】:

  • 哦,谢谢!是的,我没有启用 API!我会试试看它是否适用于此。
  • 感谢您的帮助,终于成功了!问题是谷歌地图引擎 API 被禁用,我的地图没有公开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 2015-04-20
  • 2020-01-07
  • 2017-08-11
  • 1970-01-01
相关资源
最近更新 更多