浏览器的地理位置显示两个初始位置

时间:2011-04-23 16:17:35

标签: javascript html5 mobile-phones

我写了一个地图页面,使用地理位置来检测用户的位置。当用户单击按钮时,会调用此javascript:

if (navigator.geolocation) {
wpid = navigator.geolocation.watchPosition(function (position) {
       setUserPosition(position, "Your location", pollUserPosition);
       }, 
       function() { handleNoGeolocation(true); },
       { enableHighAccuracy: false, maximumAge: 30000, timeout: 10000 }
    );
}

根据我的理解,watchPosition将开始轮询用户的位置,直到它被告知停止。这是通过调用clearWatch并从watchPositon调用传入wpid来完成的。 setUserPosition将根据位置的位置在地图上创建标记。当我在移动safari中测试此页面时,有时我会在地图上标记两个初始位置。有谁知道为什么我会返回两个地点,我怎么只返回一个?是因为使用iPhone上的单元连接和wifi连接返回了一个位置吗?

更新 作为测试,我在手机上关闭了WiFi并再次测试了地图页面。不幸的是,当我打电话给watchPosition时,我仍然会得到两个初始位置。

1 个答案:

答案 0 :(得分:0)

使用watchPosition,如果位置数据因设备移动或更准确的地理信息到达而发生变化,您将获得有关回调的更新位置信息。

因此,如果您只想要一个职位,请尝试使用:

navigator.geolocation.getCurrentPosition

这应该只返回一个位置。你已经试过了吗?

相关问题