仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

JavaScriptを勉強中、位置情報

単発だったら

(function() {
    var main;
    main = function() {
        var success;
        success = function(position) {
            console.log(position);
            if (position) {
                var geo = position.coords;
                console.log("latitude: " + geo.latitude);
                console.log("longitude: " + geo.longitude);
                console.log("accuracy: " + geo.accuracy);
                console.log("altitude: " + geo.altitude);
                console.log("altitudeAccuracy: " + geo.altitudeAccuracy);
                console.log("heading: " + geo.heading);
                console.log("speed: " + geo.speed);
            };
        };
        var error;
        error = function(e) {
            console.log(e);
        };
        var option;
        option = {
            enableHighAccuracy: true, 
            timeout: 3000, 
            maximumAge: Infinity
        };
        navigator.geolocation.getCurrentPosition(success, error, option);
    };
    main();
}).call(this);
  • ブラウザに対して高精度な位置情報を要求
  • 位置情報を取得するまで許容する時間、3秒
  • キャッシュ有効期間

定期的に取得するなら

(function() {
    var main;
    main = function() {
        var success;
        success = function(position) {
            console.log(position);
            if (position) {
                var geo = position.coords;
                console.log("latitude: " + geo.latitude);
                console.log("longitude: " + geo.longitude);
                console.log("accuracy: " + geo.accuracy);
                console.log("altitude: " + geo.altitude);
                console.log("altitudeAccuracy: " + geo.altitudeAccuracy);
                console.log("heading: " + geo.heading);
                console.log("speed: " + geo.speed);
            };
        };
        var error;
        error = function(e) {
            console.log(e);
        };
        var option;
        option = {
            enableHighAccuracy: true, 
            timeout: 10000, 
            maximumAge: Infinity
        };
        navigator.geolocation.watchPosition(success, error, option);
    };
    main();
}).call(this);