将地理位置添加到Google地方信息库

时间:2012-03-04 07:12:38

标签: javascript html5 google-maps geolocation google-places-api

我们正在尝试构建一个允许用户查看当前位置周围位置的应用。

您可以看到Google Maps API& Google商家信息库在此处运作,但不是一个:http://www.blazingsasquatch.com/geo/index4.html

您会注意到“显示我的位置”按钮会拉出您当前的位置,地图会显示波士顿附近的任意位置。

我们已经为经度和纬度创建了变量,我们试图将这些变量直接传递到“pyrmont”位置变量,但我们没有运气。

最初我们尝试使用以下设置“pyrmont”位置,也没有运气:     google.maps.LatLng(position.coords.latitude,position.coords.longitude);

那么我们如何才能填充当前位置?

var pyrmont = new google.maps.LatLng(“CURRENT LOCATION HERE”);

它只接受变量或整数吗?

2 个答案:

答案 0 :(得分:0)

LatLng构造函数采用两个浮点数,如下所示:

pos = new google.maps.LatLng(-34.397, 150.644);

在查看源代码之后,问题似乎是另一个问题:当找到地理位置时,将调用您传递给 getCurrentPosition()的匿名回调函数,这可能需要一些时间(特别是使用GPS等)。加载页面时会调用 initialize(),这是更快,因此此时未设置地点(此外,它在initialize()中不可见,因为它不是一个全局变量,但没关系)。因此,您必须将当前正在执行 initialize()的内容移动到要传递给 getCurrentPosition()的回调函数。然后,您可以使用

var pyrmont = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

答案 1 :(得分:0)

初始化将在navigator.geolocation.getCurrentPosition()的回调之前调用,因此你不能在initialize()中使用结果。(你可以将getCurrentPosition视为异步请求)

getCurrentPosition()

的回调中调用操作(创建marker和places-request)

查看有效的演示:http://jsfiddle.net/doktormolle/C5ZtK/