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()方法

Google Maps Api v3 - getBounds 未定义

Google Maps Api v3,自定义集群图标

Google Maps API V3 - 自定义图块

是否可以在Google Maps API v3上编写自定义文字?