2

最初によろしくお願いします。「ナビゲート」ボタンをクリックすると、特定の場所に誘導するオプションを備えたウェブサイトを構築します。電話の GPS が有効になっている場合、すべてがデスクトップで正常に動作し、すべてがモバイルで正常に動作します。

私はグーグルマップのリファレンスを使用していますが、うまくいきます:

http://maps.google.com/maps?saddr=myLat,myLng&daddr=targetLat,targetLng

$('.button').click()でこれを行います。$(window).loadまたは$(document).readyではありません。ボタンをクリックすると、地理位置情報関数が呼び出されます。

function getGeolocation(){
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
    } else {
        $('.error-message').html('<p>Your browser does not support this function</p>');
    }
}

function geoSuccess(position) {
    myLat = position.coords.latitude;
    myLng = position.coords.longitude;

    window.location.href = 'http://maps.google.com/maps?saddr=' + myLat + ',' + myLng + '&daddr=targetLat,targetLng';
}

function geoError(){
    switch(error.code) {
        alert('example alert - enable GPS');

        case error.PERMISSION_DENIED:
            $('.error-message').html('<p>User denied the request for Geolocation.</p>');
            break;
        case error.POSITION_UNAVAILABLE:
            $('.error-message').html('<p>Location information is unavailable.</p>');
            break;
        case error.TIMEOUT:
            $('.error-message').html('<p>The request to get user location timed out.</p>');
            break;
        case error.UNKNOWN_ERROR:
            $('.error-message').html('<p>An unknown error occurred.</p>');
            break;
    }
}

しかし、問題は GPS が無効になっている場合です。

まずgeoError()に入らない時があります。何度も試しましたが、「見つかった」のは、時々キャッシュされることだけです。それは可能ですか?

しかし、主な問題は、GPS が無効になっていると、「警告の例」が表示され、GPS をオンにしてボタンをもう一度クリックしても、再び機能しないことです。GPS をオンにするには、ページを更新する必要があります。それは避けたい。なぜそれが起こっているのか知っている人はいますか?私がやりたいことをする方法はありますか?

もう 1 つの問題は、GPS をオンにしてページを読み込んだときです。次に、それをオフにしてボタンをクリックします。何も起こりません。getGeolocation()に入り、true を取得してから停止します。getCurrentPosition()には入りません。何か案は?

4

3 に答える 3