- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
地理定位实现非常好,可以观察的步骤很少,但我猜只是缺少了一些东西。我无法查看用户是否接受了请求(在我获得位置对象之前),我不知道用户是否只是忽略了我的请求(在我超时期间)或者请求是否只是丢失了(并且失败回调没有得到无缘无故打电话)。
当用户接受请求时设置时间戳会很有用,我找不到任何能给我那种响应的东西。
最佳答案
根据我对您的需求的新理解,您想要这样的东西。(已测试:在 Opera 中 - 有效,Firefox 3.6 和 Chrome 8 - 不太好(我需要更多时间来调试))
场景:页面尝试获取位置...但用户完全忽略了提示,因此没有(接受或拒绝),并且由于从未发送过位置请求,因此也没有超时!
基于此,您可能希望添加自己的逻辑来处理这种情况。为了这个例子,我将制作我自己的“包装器”方法的原型(prototype)。 (对于挑剔的人——我不会容忍使用全局变量等。我只是想让一些东西起作用)
navigator.geolocation.requestCurrentPosition = function(successCB, errorCB, timeoutCB, timeoutThreshold, options){
var successHandler = successCB;
var errorHandler = errorCB;
window.geolocationTimeoutHandler = function(){
timeoutCB();
}
if(typeof(geolocationRequestTimeoutHandler) != 'undefined'){
clearTimeout(window['geolocationRequestTimeoutHandler']);//clear any previous timers
}
var timeout = timeoutThreshold || 30000;//30 seconds
window['geolocationRequestTimeoutHandler'] = setTimeout('geolocationTimeoutHandler()', timeout);//set timeout handler
navigator.geolocation.getCurrentPosition(
function(position){
clearTimeout(window['geolocationRequestTimeoutHandler']);
successHandler(position);
},
function(error){
clearTimeout(window['geolocationRequestTimeoutHandler']);
errorHandler(error);
},
options
);
};
function timeoutCallback(){
alert('Hi there! we are trying to locate you but you have not answered the security question yet.\n\nPlease choose "Share My Location" to enable us to find you.');
}
function successCallback(position){
var msg = '';
msg += 'Success! you are at: ';
msg += '\nLatitude: ' + position.coords.latitude;
msg += '\nLongitude: ' + position.coords.longitude;
msg += '\nAltitude: ' + position.coords.altitude;
msg += '\nAccuracy: ' + position.coords.accuracy;
msg += '\nHeading: ' + position.coords.heading;
msg += '\nSpeed: ' + position.coords.speed;
alert(msg);
}
function errorCallback(error){
if(error.PERMISSION_DENIED){
alert("User denied access!");
} else if(error.POSITION_UNAVAILABLE){
alert("You must be hiding in Area 51!");
} else if(error.TIMEOUT){
alert("hmmm we timed out trying to find where you are hiding!");
}
}
navigator.geolocation.requestCurrentPosition(successCallback, errorCallback, timeoutCallback, 7000, {maximumAge:10000, timeout:0});
这个概念是先设置一个定时器(如果不设置则默认为 30 秒)。如果用户在计时器到期之前未执行任何操作,则会调用 timeoutCallback。
注意事项:
关于html - 接受请求时的地理位置反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736057/
我希望能够在本地运行查询,比较位置的纬度和经度,这样我就可以根据距离对我捕获的某些地址运行查询。 我找到了一个免费数据库,其中包含有关邮政编码的信息,但我想要此信息以获取更具体的地址。我查看了谷歌的地
这个问题已经有答案了: Why is my variable unaltered after I modify it inside of a function? - Asynchronous code
我正在为我正在构建的网站使用此免费模板:http://blackrockdigital.github.io/startbootstrap-scrolling-nav/ 我正在使用地理定位服务 (Goo
我有一个 JSON 格式的来自世界各地的用户列表。列表中的每个项目都有一个位置信息。 如何将这些位置转换为正确的经度和纬度? 如何过滤这些位置以仅获取距我当前位置 50 英里范围内的位置(假设我知道如
我多年来一直在寻找一种解决方案,让我可以通过 Wi-Fi 显示我的设备位置,但实际上并未连接到任何网络。所以它只是打开了 Wi-Fi,但是我尝试过的每一种方法都会返回我位于伦敦的信息。有谁知道为什么会
我想在移动网站上制作一种指南针。这就是我所拥有的: 这就是我想要的: 我将当前位置保存在本地存储中。然后,例如再前进 1 公里,我检查我的位置并检查两点之间的距离。 现在我想要一个从当前位置到本地存储
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在尝试制作我的第一个与地理定位和本地通知相关的 Android 系统应用程序。我想象它是这样的......有基本的 Activity MainActivity。启动后,它会启动一个服务 TestS
我正在寻找一个快速 MySQL 查询,它可以从一个简单的表中返回最近的位置: 表:位置: id | city | latitude | longitude -----------
我正在为一家欧洲公司研究 Windows Azure 的功能。他们的担忧之一是数据将由美国的服务器处理/存储。 (关于爱国行为) 微软确实提供了选择地理位置的选项,但我还没有发现他们保证数据不会在美国
Nog 我有以下页面,其中包含前往预定义目的地的路线: example directions 这与以下代码完美配合: My Google Maps Demo
我正在寻找有关全天在 Android 上检查位置(大约每 15 分钟)并存储地理坐标的信息。当应用程序在后台时也会发生这种情况,而不仅仅是当应用程序在前台运行时。我不确定搜索词,我似乎找不到任何东西。
我想创建一个网站,其功能应该是阅读您当前的标题。 最佳答案 我假设您已经知道如何 use the JavaScript geolocation API以及如何在 JavaScript 中呈现旋转箭头,
我有一个关于地理定位和 javascript 变量范围的问题。我一直在玩弄它,但我是一个 php 人,js 不是我最好的语言。我正在制作谷歌地图,我想将用户坐标设置为 map 中心并设置缩放比例。如果
我在一个目录中有一堆营业地点的记录。实际上大约有 4,500 个。 目前我的速度有点问题,有两个原因。当用户加载页面时,系统会要求他们输入邮政编码。 当他们这样做时,页面将重新加载并获取所有企业,fo
在我的 Ionic 应用程序中,我使用以下选项实现了地理位置 watchPosition。我的选项设置为每 10 秒触发一次,但它每秒触发一次。通常每秒会触发两次。 function watchPos
我和我的搭档正在为我们的学校论文开发一个练习 Web 应用程序。我们正在尝试使用地理定位 api 的 watchposition() 函数获取运行者的位置并在他锻炼期间跟踪他。在屏幕上,运行者可以检查
我正在尝试制作一个按钮以在设备上启动谷歌地图并打开到特定位置[不只是纬度/经度,尽管这是后备]。 我有一个地点 ID,并想启动一个 geo: 到该地点的 Intent 。我似乎找不到我需要的 uri
我正在通过 WIFI 和 cable 连接使用 LAN。两者在相同的 IP 下对外部可见。 但不知何故,当我尝试获取地理定位时 (HTML5 Geolocation API 上的经度和纬度),它会显示
我测试我的地理定位查询已经有一段时间了,直到现在我还没有发现任何问题。 我试图搜索给定半径内的所有城市,通常我使用城市的坐标搜索城市周围的城市,但最近我尝试在城市周围搜索并发现城市本身没有返回。 我的
我是一名优秀的程序员,十分优秀!