Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova:HTML5地理位置-从JavaScript数组中查找最近的位置_Javascript_Html_Cordova_Geolocation_Gps - Fatal编程技术网

Cordova:HTML5地理位置-从JavaScript数组中查找最近的位置

Cordova:HTML5地理位置-从JavaScript数组中查找最近的位置,javascript,html,cordova,geolocation,gps,Javascript,Html,Cordova,Geolocation,Gps,我有JavaScript中的位置数组。我需要从gps传感器获取gps地理位置(在使用ApacheCordova的移动电话上) 如果GPS精度优于例如40米,我需要做一些事情(设置css显示:块,更改颜色,…) 我有以下代码: <!DOCTYPE html> <html><head> <meta charset="utf-8"> <script type="text/javascript" charset="utf-8" sr

我有JavaScript中的位置数组。我需要从gps传感器获取gps地理位置(在使用ApacheCordova的移动电话上)

如果GPS精度优于例如40米,我需要做一些事情(设置css显示:块,更改颜色,…)

我有以下代码:

<!DOCTYPE html>
<html><head>
    <meta charset="utf-8"> 
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script src="js/jquery-1.11.0.min.js"></script>
    <script src="js/distance.js"></script> <!-- https://github.com/janantala/GPS-distance/blob/master/javascript/distance.js -->

    <script type="text/javascript" charset="utf-8">
    var interval = 5; // [s]
    var timeout = 60; // [s]

    /* --------------------------------------------------- */
    var latitude            = new Array();
    var longtitude          = new Array();
    var nameOfLocation      = new Array();

    // address 1
    // Latitude : 10.20 | Longitude : 30.40
    latitude[0]             = 10.20;
    longtitude[0]           = 30.40;
    nameOfLocation[0]       = "address 1";

    // address 2
    // Latitude : 40.30 | Longitude : 20.10
    latitude[1]             = 40.30;
    longtitude[1]           = 20.10;
    nameOfLocation[1]       = "address 2";

    // ...
    /* --------------------------------------------------- */

    // Wait for device API libraries to load
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    function onDeviceReady() {
        console.log('in onDeviceReady()');      
        $(document).ready(function(){
            setInterval(function(i) {
                navigator.geolocation.getCurrentPosition(onSuccess, onError, {
                    maximumAge: 0, 
                    timeout: (timeout*1000), 
                    enableHighAccuracy: true }
                );              
            }, (interval*1000))
        });        
    }

    // onSuccess Geolocation
    function onSuccess(position) {
        console.log('in onSuccess()');
        console.log(position.coords.latitude, "position.coords.latitude");
        console.log(position.coords.longitude, "position.coords.longitude");
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                            'Longitude: '          + position.coords.longitude             + '<br />' +
                            'Altitude: '           + position.coords.altitude              + '<br />' +
                            'Accuracy: '           + position.coords.accuracy              + '<br />' +
                            'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                            'Heading: '            + position.coords.heading               + '<br />' +
                            'Speed: '              + position.coords.speed                 + '<br />' +
                            'Timestamp: '          + position.timestamp                    + '<br />';   

    var place;                     
    var accuracy;
    $("#accuracy").html("GPS accuracy " + position.coords.accuracy + " m.");

    if (position.coords.accuracy < 40) {
        $("#accuracy").css("background-color", "Gray");     
        for (var i=0; nameOfLocation.length; i++) {
            var distance = getDistance(latitude[0], longitude[0], position.coords.latitude, position.coords.longitude);

            if (distance <= 25) {
                place = i;
                accuracy = position.coords.accuracy;
                $("#accuracy").css("background-color", "OrangeRed");
            } else if (distance <= 20) {
                place = i;
                accuracy = position.coords.accuracy;
                $("#accuracy").css("background-color", "Yellow");
            } else if (distance <= 15) {
                place = i;
                accuracy = position.coords.accuracy;
                $("#accuracy").css("background-color", "Green");
            }               
        }

        $("#info").html("You are about <strong>" + accuracy + "</strong> meters from location <strong>" + nameOfLocation[i] + "</strong>");             
    } else {
        $("#info").html("");
    }                                
}

    // onError Callback receives a PositionError object
    function onError(error) {
        console.log('in onError()');
        console.log(error.code, "error.code");
        console.log(error.message, "error.message");
        $("#geolocation").html(
                'code: '    + error.code    + '<br />' +
                'message: ' + error.message);
        $("#accuracy").css("background-color", "");
    }    

    </script>
  </head><body>

  <p id="info"></p>  
  <hr />

  <p id="accuracy"></p>  
  <hr />  

  <p id="geolocation">GPS ...</p>

  </body></html> 

变量间隔=5;//[s]
变量超时=60;//[s]
/* --------------------------------------------------- */
var latitude=新数组();
var longtudent=新数组();
var nameOfLocation=新数组();
//地址1
//纬度:10.20 |经度:30.40
纬度[0]=10.20;
长度[0]=30.40;
位置[0]的名称=“地址1”;
//地址2
//纬度:40.30 |经度:20.10
纬度[1]=40.30;
长度[1]=20.10;
地址名称[1]=“地址2”;
// ...
/* --------------------------------------------------- */
//等待加载设备API库
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//设备API可用
函数ondevicerady(){
log('in ondevicerady()');
$(文档).ready(函数(){
设置间隔(函数(i){
navigator.geolocation.getCurrentPosition(onSuccess,onError{
最大值:0,
超时:(超时*1000),
EnableHighAccurance:true}
);              
},(间隔*1000)
});        
}
//成功地理定位
成功时的功能(位置){
log('in onSuccess()');
log(position.coords.latitude,“position.coords.latitude”);
log(position.coords.longitude,“position.coords.longitude”);
var element=document.getElementById('geolocation');
element.innerHTML='Latitude:'+position.coords.Latitude+'
'+ '经度:'+position.coords.Longitude+'
'+ '高度:'+position.coords.altime+'
'+ '精度:'+position.coords.accurity+'
'+ '高度精度:'+position.coords.altitudeAccuracy+'
'+ '标题:'+position.coords.Heading+'
'+ '速度:'+position.coords.Speed+'
'+ '时间戳:'+position.Timestamp+'
'; var place; var准确性; $(“#精度”).html(“GPS精度”+position.coords.accurity+“m.”); if(位置坐标精度<40){ $(“#精度”).css(“背景色”、“灰色”); for(变量i=0;nameOfLocation.length;i++){ var distance=getDistance(纬度[0],经度[0],位置.coords.latitude,位置.coords.经度); 如果(距离)