Google maps api v3,定义用户当前位置
Posted
技术标签:
【中文标题】Google maps api v3,定义用户当前位置【英文标题】:Google maps api v3, defining user current location 【发布时间】:2012-04-18 17:21:48 【问题描述】:function onPositionUpdate(position)
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var markerPoint = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker(
position: markerPoint,
map: map,
title: 'Your Location'
);
function button_clicked()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(onPositionUpdate);
else
alert("navigator.geolocation is not available");
此代码运行正常并显示用户位置。当我在家里尝试这个时,它会显示正确的地址,但是当我在另一个位置尝试这个时,这个代码不会显示正确的地址。为什么?我不知道这段代码是如何运行的(这段代码是否定义了 IP 或其他信息)
【问题讨论】:
地址距离有多远?是否有可能只是在通话时没有对 GPS 进行足够的微调?好像它只能在半英里之内确定你的位置。此外,如果您在桌面上执行此操作,则其行为也不相同。我总是在加利福尼亚或其他地方找到一个地方,因为它没有 GPS、wi-fi 连接等来确定我的位置。 【参考方案1】:您可以检查其他程序是否可以找到您。如果不是,可能不是您的代码不正确:
http://html5demos.com/geo
某些安全措施可能会导致客户端不会自动共享位置信息。
【讨论】:
【参考方案2】:你试过了吗:
navigator.geolocation.getCurrentPosition(onPositionUpdate() );
不确定您的回调是否必须有括号。这是我会尝试的。
我还注意到,地理定位需要一点时间才能将近似值缩小到更小的半径。可能需要调用位置更新。
【讨论】:
以上是关于Google maps api v3,定义用户当前位置的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Maps JavaScript API v3 中获取当前位置并让点跟随我而无需用户交互
使用Javascript中的Oauth授权将Google表格API v3迁移到v4之后如何实现makeApiCall()方法