5 – Phonegap – Cordova GPS ve MOTİON Sensörlerinin kullanımı

Telefonun native özelliklerinden GPS ve MOTİON sensörlerini kullanmak için öncelikle projemize pluginlerini dahil etmemiz gerek .

cordova plugin add cordova-plugin-device-motion // motion sensörler için (hareket sensörleri )

cordova plugin add cordova-plugin-geolocation // gps için

Motion sensörlerini kullanmamız için gereken javasicript kodu

function onSuccess(acceleration) {
    alert('Acceleration X: ' + acceleration.x + '\n' +
          'Acceleration Y: ' + acceleration.y + '\n' +
          'Acceleration Z: ' + acceleration.z + '\n' +
          'Timestamp: '      + acceleration.timestamp + '\n');
};
function onError() {
    alert('onError!');
};
var options = { frequency: 3000 };  // 3 saniyede bir pozisyon kontrolu yapılacak
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

 

Birde full çalışan bir kod örneği paylaşalım

<!DOCTYPE html>
<html>

<head>

<title>Hareket Sensörü</title>

<script type="text/javascript" charset="utf-8">

var watchID = null;

function onLoad(){

document.addEventListener("deviceready", onDeviceReady, false);

}

function onDeviceReady() {

startWatch();

}

function startWatch() {

var options = { frequency: 1000 };

watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

}

function stopWatch() {

if (watchID) {

navigator.accelerometer.clearWatch(watchID);

watchID = null;

}

}

function onSuccess(acceleration) {

var element = document.getElementById('hareket');

element.innerHTML = 'Yön X: ' + acceleration.x + '<br />' +

'Yön Y: ' + acceleration.y + '<br />' +

'Yön Z: ' + acceleration.z + '<br />' +

'Timestamp: ' + acceleration.timestamp + '<br />';

}

function onError() {

alert('onError!');

}

</script>

</head>

<body onload="onLoad()">

<div id="hareket">Hareket sensörleri bekleniyor...</div>

<button onclick="startWatch();">Hareket izlemeye başla</button>

<button onclick="stopWatch();">Durdur</button>

<script type="text/javascript" src="cordova.js"></script>

</body>

</html>

 

GPS Sensörünü kullanmanız için gereken javascript kodu
document.addEventListener("deviceready", onDeviceReady, false);   

 

 

   var watchID = null;

    function onDeviceReady() {

        var options = { enableHighAccuracy: true };

        watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);

    }

    function onSuccess(position) {

uri = position.coords.latitude +','+ position.coords.longitude;

localStorage.setItem('kordinat', uri);

 // 

                                                      

clearWatch();

    }

    function clearWatch() {

        if (watchID != null) {

            navigator.geolocation.clearWatch(watchID);

            watchID = null;

        }

    }

        function onError(error) {

          alert('code: '    + error.code    + '\n' +

                'message: ' + error.message + '\n');

        }

 

Birde full çalışan bir kod örneği paylaşalım .

<!DOCTYPE html>

 

<html>

 

  <head>

    <title>GPS Sensörü uygulaması</title>

 

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>

    <script type="text/javascript" charset="utf-8">

 

    // 

    //

    document.addEventListener("deviceready", onDeviceReady, false);

 

    //

    //

    function onDeviceReady() {

        navigator.geolocation.getCurrentPosition(onSuccess, onError);

    }

 

    // 

    //

    function onSuccess(position) {

        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 />';

    }

    // Yukarıda position.coords.latitude , position.coords.longitude değişkenleri aracılığı ile enlem boylam bilgisini alabilirsiniz

 

 

    // pozisyon hatalarında çalışacak function

    //

    function onError(error) {

        alert('code: '    + error.code    + '\n' +

              'message: ' + error.message + '\n');

    }

 

    </script>

  </head>

  <body>

    <p id="geolocation">Konum arama işlemi tamamlandı...</p>

  </body>

</html>