gpt4 book ai didi

javascript - 如何使 PhoneGap 应用程序更少保存当前地理位置?

转载 作者:行者123 更新时间:2023-11-28 06:06:01 25 4
gpt4 key购买 nike

我正在开发一款有趣的应用程序,它可以让你记录你所走的路线。我用它来了解 Google Maps API 以及 Phonegap Build,所以这些就是我在这里使用的工具。

我制作了一个基本的应用程序,它将位置数据(纬度、经度)收集到一个数组中,然后使用 Google 的 API 在 map 上显示结果。将来我想用一条线将它们连接起来,允许评论等等。

这是在我家附近开车的样子:

a trip around with coordinates

非常整洁。然而,这里有些问题。当尝试绘制这么多坐标点时,较长的行程将使应用程序崩溃。这里in the docs ,描述了选项哈希。我的看起来像这样:

var options = { maximumAge: 1000, timeout: 3000, enableHighAccuracy: true };

我不确定我完全理解这个解释。 maximumAge 似乎意味着,除非有新的 GPS 或位置数据,否则它将仅使用前一个数据,因此将其设置为 9999999 应该使其永远不会使用缓存的数据。

超时比较棘手。看来位置信息并不能保证,因此有时会抛出错误。但增加这个数字是否会导致路线的情节点减少?我在哪里可以找到有关与手机配合使用的 GPS 系统的信息?

如何更改这些配置以使用更少的点进行更准确的绘图?

最佳答案

你应该使用navigator.geolocation.watchPosition当检测到位置变化时,它返回设备的当前位置。当设备检索新位置时,geolocationSuccess 回调将使用 Position 对象作为参数执行。如果出现错误,则以 PositionError 对象作为参数执行 geolocationError 回调。

语法

var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);

示例

// onSuccess Callback
// This method accepts a `Position` object, which contains
// the current GPS coordinates
//
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;
}

// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}

// Options: throw an error if no update is received every 30 seconds.
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 3000 });

现在,只有在移动设备时才会捕获位置,因此路线的绘图点较少。根据您的要求更改超时。

clearwatch当您想停止监视设备位置的更改时。

关于javascript - 如何使 PhoneGap 应用程序更少保存当前地理位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com