- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 MapDotNet 的 Touchgeo ( http://www.mapdotnet.com/index.php/component/content/article?id=131) 中的地理围栏功能编写 watchPosition 函数。在初始加载时,一切都运行良好;刷新时,我只收到一行调试消息,表示只有一个回调,而且我手机上的 GPS 从未打开。这是我的 watchPosition 函数:
navigator.geolocation.watchPosition(
function success(pos) {
$('#debug')
.prepend(
$('<div></div>').text('accuracy: ' + pos.coords.accuracy)
)
.css({
textAlign: 'right',
color: 'black'
});
var endpoint = isc.touchgeo.dataServicesEndpoint + "Map/mapname/Features/geofence?x={x}&y={y}&role={role}"
.replace("{x}", pos.coords.longitude)
.replace("{y}", pos.coords.latitude)
.replace("{role}", isc.touchgeo.authenticationMgr.getAuthorizationRecord().Role);
$.getJSON(endpoint, function success(data) {
$('#debug')
.prepend(
$('<div></div>').text('features: ' + data.length)
)
.css({
textAlign: 'right',
color: 'black'
});
for (layer in data) {
if (layer in geofencingRules) {
geofencingRules[layer](data[layer]);
}
}
});
},
function error(error) {
$('#debug')
.prepend(
$('<div></div>').text('error: ' + error.code)
)
.css({
textAlign: 'right',
color: 'black'
});
},
{
enableHighAccuracy: true,
maximumAge: 15000,
}
);
有什么想法吗?
最佳答案
我想通了。基本上,positionOptions 上的 maximumAge
告诉 watchPosition()
使用页面刷新前的数据。因此,GPS 从未打开并且 watchPosition()
没有接收到数据。解决这个问题的方法是让
var maximumAge = 0;
navigator.geolocation.watchPosition(
function success(pos) {
maximumAge = 15000;
$('#debug')
.prepend(
$('<div></div>').text('accuracy: ' + pos.coords.accuracy)
)
.css({
textAlign: 'right',
color: 'black'
});
var endpoint = isc.touchgeo.dataServicesEndpoint + "Map/mapname/Features/geofence?x={x}&y={y}&role={role}"
.replace("{x}", pos.coords.longitude)
.replace("{y}", pos.coords.latitude)
.replace("{role}", isc.touchgeo.authenticationMgr.getAuthorizationRecord().Role);
$.getJSON(endpoint, function success(data) {
$('#debug')
.prepend(
$('<div></div>').text('features: ' + data.length)
)
.css({
textAlign: 'right',
color: 'black'
});
for (layer in data) {
if (layer in geofencingRules) {
geofencingRules[layer](data[layer]);
}
}
});
},
function error(error) {
$('#debug')
.prepend(
$('<div></div>').text('error: ' + error.code)
)
.css({
textAlign: 'right',
color: 'black'
});
},
{
enableHighAccuracy: true,
maximumAge: maximumAge,
}
);
也就是说,向 maximumAge 传递一个初始化为 0 但在第一次回调时递增到 15000 的变量。
希望这对某人有帮助。
关于android - watchPosition() 只触发回调一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989942/
我用这个代码获得了第一名,我想一直获得它。 var init = function() { navigator.geolocation.getCurrentPosition(functi
我正在开发 Ionic 应用程序,想解决 Geolocation Watch Position 的问题。我想每 1 分钟而不是 5 秒后获取数据。我的代码如下, var opti = { enabl
我正在为 MapDotNet 的 Touchgeo ( http://www.mapdotnet.com/index.php/component/content/article?id=131) 中的地
我使用以下代码通过 watchPosition 获取用户位置。我还想为失败参数定义代码并将选项传递给 watchPosition,但我不确定代码应该放在哪里。 if (navigator.geoloc
我正在开发一个phonegap应用程序,该应用程序在其功能中使用设备的当前位置,但在Iphone上测试时,该应用程序每60秒给出一条错误消息,如下所示: 我用来获取位置的源代码是: function
我正在尝试在谷歌地图上创建一个标记来向用户显示当前位置。使用以下代码我可以做到这一点,但每次 watchPosition 刷新时都会创建一个新点。每次添加新点时如何清除以前的标记? // Geoloc
在我的 Ionic 应用程序中,我使用以下选项实现了地理位置 watchPosition。我的选项设置为每 10 秒触发一次,但它每秒触发一次。通常每秒会触发两次。 function watchPos
我正在使用 sencha 2.3.1 + phonegap 3.3.0 为 Android 构建一个位置感知应用程序,并使用地理定位显示按与用户位置的接近程度排序的目的地列表。如果基于网络的位置设置打
我正在使用 html 5 创建一个 android 应用程序,我想在用户移动时从用户那里访问 latlong。我使用过 watchPostion,但它只给我一次用户位置。 var watchI
我尝试将 JavaScript Promise 与地理定位结合使用,但无法使其与 geolocation.watchPosition 一起正常工作,then 子句仅被调用一次: function Ge
我一直在使用地理位置 navigator.geolocation.getCurrentPosition但发现不如 navigator.geolocation.watchPosition 准确。所以我的
getCurrentPosition() 和 watchPosition() 有什么区别。我阅读了几篇关于 getCurrentPosition() 和 watchPosition() 的文章。但我都
我正在尝试设置我的代码来定位 Android 手机或平板电脑上最准确的位置。由于 getCurrentPosition 没有给 GPS 足够的时间来查找位置,因此我使用 watchPosition。这
我正在尝试实现一个需要跟踪用户位置的功能,首先,我使用 getCurrentLocation 检索用户的位置,然后传递坐标以放置指示用户位置的标记(标记变量是全局设置的),然后我调用 watchPos
我试过这段代码: Location Location Location var watchID = null; // PhoneGap is ready
我有一个监控设备位置的服务: getLocation(opts): Observable { return Observable.create(observer => { if
好的,我的代码在下面,所以我将解释我在做什么以及我得到的结果。 我正在尝试使用 navigator.geolocation.watchPosition 获取用户位置。我已经指定了成功和错误回调。我第一
我在请求用户提供地理位置数据的网站上遇到此错误: getCurrentPosition() and watchPosition() are deprecated on insecure origins
我需要确定50m范围内一个人的位置。我想知道是否应该使用 navigator.location.watchPostion() 或一遍又一遍地调用 getCurrentPostion() 。 watch
下面是我使用的代码,用于查找用户的位置。 if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(po
我是一名优秀的程序员,十分优秀!