JavaScriptで位置情報を取得

スマホで現在位置から近くのお店を探す。
geolocation


if (navigator.geolocation) {
    /* 現在の位置情報を取得 */
    navigator.geolocation.getCurrentPosition(function(pos) {//位置情報の取得に成功した場合
        alert('緯度:' + pos.coords.latitude + ", 経度:" + pos.coords.longitude);
        //この緯度経度を利用してDBから近くのお店を探します。
     $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/getshop/',
            cache: false,
            data: {lat:pos.coords.latitude, lng:pos.coords.longitude}
         }).done(function(data, textStatus, jqXHR){
            //ここで地図にお店情報を表示してあげる。
         }).fail(function(jqXHR, textStatus, errorThrown ){
            alert('通信エラーが発生しました');
         }).always(function(data, textStatus, jqXHR){
            //成功時のとエラー時とで引数の意味が違ってくる
       alert(textStatus);
         });
    }, function(error) {//位置情報の取得に失敗した場合
        var msg;
        switch (error.code) {
            /* エラーコード
             1.位置情報の取得が許可されていない
             2.位置情報の取得が利用できない
             3.タイムアウト
             */
            case error.PERMISSION_DENIED:
                //エンド・ユーザーが、Geolocation APIの仕様を許可しない場合に発生
                msg = "位置情報取得の使用許可がされませんでした" + "\n";
                break;
            case error.POSITION_UNAVAILABLE:
                //在位置を特定できない場合に発生
                msg = "位置情報を特定できませんでした" + "\n";
                break;
            case error.PERMISSION_DENIED_TIMEOUT:
                msg = "位置情報取得がタイムアウトしました" + "\n";
                break;
            default:
                msg = "位置情報取得で不明なエラーが発生しました(CODE: " + error.code + ")\n";
                break;
        }
        if (error.message) {
            msg += error.message + "\n";
        }
        alert(msg);
    }, {
        enableHightAccuracy : true, //高精度の情報を取得するかどうかを指定(Boolean型)
        timeout : 30000//タイムアウトまでの時間を指定
        //maximumAge:   位置情報の有効期限を指定
    });
} else {
    alert("ご利用のブラウザでは位置情報を取得できません");
}

これを雛形にしていますが、Google Maps API を利用すると色々なことが出来そうです。
もっと便利で面白いスマホサイトを作りたいですね。

https://developers.google.com/maps/?hl=ja