【发布时间】:2013-03-01 23:02:21
【问题描述】:
所以我环顾四周,找不到任何真正回答我想要做的事情的东西,因此我发布了!
我的总体目标本质上是让页面读取用户的位置,然后根据他们所在的位置运行代码。具体来说,我有一个 facebook 签入脚本,允许用户在特定位置签入。
问题是所讨论的位置有点大,因此手动输入该位置的坐标是行不通的。我现在坚持的是是否有可能告诉 JS 采用硬编码的位置的经度和纬度,但在坐标周围给出一个半径(比如说 200 米),所以当用户输入坐标的 200m 半径时代码激活。
有人有什么想法吗?
这是我目前的代码。
jQuery(window).ready(function(){
initiate_geolocation();
});
function initiate_geolocation() {
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
}
function handle_errors(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED: alert("user did not share geolocation data");
break;
case error.POSITION_UNAVAILABLE: alert("could not detect current position");
break;
case error.TIMEOUT: alert("retrieving position timed out");
break;
default: alert("unknown error");
break;
}
}
function handle_geolocation_query(position){
var lat = position.coords.latitude;
var long = position.coords.longitude;
//these are for testing purposes
alert('Your latitude is '+lat+' and longitude is '+long);
if (lat == 0 && long == 0) {alert('It works!');};
}
【问题讨论】:
-
顺便说一下,代码中倒数第二行将 lat 和 long 都设置为 0,我怀疑这就是你的意思:
if (lat = 0 && long = 0) {alert('It works!');};可能应该是if (lat == 0 && long == 0) {alert('It works!');}; -
好收获!我没看到这个。我已经将它从实际坐标编辑为 0,所以如果人们认为我指向 0/0 很奇怪,我不是。 :p