【发布时间】:2016-11-14 06:28:05
【问题描述】:
我正在开发一个将使用 Google Maps / Places API 的网站。我已经验证我的 API 密钥工作正常,所以这不是问题。我什至无法显示地图 - 这是我的问题。
我已经完全复制了该示例,但它仍然无法正常工作。
Here's my code 概括地说,因为它是几个文件。它应该是可运行的,这就是所有内容。
到目前为止我所做的尝试:
- 将其全部放入文档就绪函数 (jQuery)。
- 将其从 getCurrentPosition 函数中取出,使其位于 main.js 文件中。
- 在我的 HTML 文件中移动脚本链接的位置,任何位置都没有改变。
- 如果我 console.log() lat 和 long 变量,它们会打印我的位置。但是当我将它们输入 Chrome 开发工具控制台时,它们是“未定义的”。但是,我的“地图”变量将地图 div 打印到控制台。
- 使用静态坐标,而不是从导航器 HTML5 元素收集的坐标。
- 使用像素、百分比和 vh/vw 设置地图 div 的高度和宽度。它占据了屏幕 - 我知道是因为我给了它一个正在显示的背景颜色。
- 在我的 API 加载末尾添加了参数:&callback=initialize&libraries=places
这是我第一次使用地图,所以我完全迷路了。我跟着Google's example 到了一个发球台,但仍然一无所获。
WebStorm 强调所有 google.maps.x 类,并说它们是“未解决的变量或类型”。这可能是我的问题,但我不知道是什么原因造成的或如何解决它。需要明确的是,我已经浏览了我在 Stack Overflow 上找到的与此相关的所有文章,但没有找到解决方案。
更新:
- 我刚刚尝试从谷歌完全复制和粘贴this example,因为它出现(当然是我的API密钥),但它仍然没有工作。我把它放在我的 HTML 中的脚本标签中。它起作用的唯一方法是如果我删除 initMap() 函数 - 不是它的内容,只是将它声明为一个函数。那么为什么作用域在这里表现得如此奇怪呢?它将函数内部的所有内容(在我的 HTML 中的脚本标记中)都视为未定义,只是因为它在函数中......在最高范围级别。
【问题讨论】:
-
initialize不可全局访问。把它从getCurrentPosition回调中取出 -
这是我尝试过的事情列表中的第二个。我也试过把所有东西都拿出来,只为它设置静态坐标,没有变化。
标签: javascript html google-maps web google-places-api