jsで位置情報を取得する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<div id="result"></div>
 
<script>
if(navigator.geolocation)
{
    navigator.geolocation.getCurrentPosition(
 
        function(position){
 
            var data = position.coords;
 
        var lat = data.latitude;
        var lng = data.longitude;
        var alt = data.altitude;
        var accLatlng = data.accuracy;
        var accAlt = data.altitudeAccuracy;
        var heading = data.heading;
        var speed = data.speed;
 
        document.getElementById('result').innerHTML = '<dl><dt>緯度</dt><dd>' + lat + '</dd><dt>経度</dt><dd>' + lng + '</dd><dt>高度</dt><dd>' + alt + '</dd><dt>緯度、経度の精度</dt><dd>' + accLatlng + '</dd><dt>高度の精度</dt><dd>' + accAlt + '</dd><dt>方角</dt><dd>' + heading + '</dd><dt>速度</dt><dd>' + speed + '</dd></dl>' ;
 
        var latlng = new google.maps.LatLng(lat, lng);
 
        var map = new google.maps.Map(document.getElementById('map-canvas'), {
            zoom: 15,
            center: latlng,
        });
            new google.maps.Marker({
                map: map,
                position: latlng,
            });
        },
         
        function(error)
        {
            var errorInfo = [
                "原因不明のエラーが発生しました。",
                "位置情報の取得が許可されませんでした。",
                "電波状況などで位置情報が取得できませんでした。",
                "位置情報の取得に時間がかかりすぎてタイムアウトしました。"
            ];
 
            var errorNo = error.code;
 
            var errorMessage = "[エラー番号: " + errorNo + "]\n" + errorInfo[ errorNo ];
 
            alert(errorMessage);
            document.getElementById("result").innerHTML = errorMessage;
 
        },
        {
            "enableHighAccuracy": false,
            "timeout": 8000,
            "maximumAge": 2000,
        }
 
        );
 
}
 
else
{
    var errorMessage = "お使いの端末は、Geolocation APIに対応していません。";
 
    alert(errorMessage);
 
    document.getElementById('result').innerHTML = errorMessage;
}
 
</script>

なに!? vagrantだから?