2017-01-24 11 views
3
Geolocation.getCurrentPosition().then((position) => { 

     let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
     //let latLng = new google.maps.LatLng(40.987469, 29.027119); 

     let mapOptions = { 
     center: latLng, 
     zoom: 15, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); 
    }).catch((error) => { 
     console.log('Error getting location', error); 

    }); 

私はユーザーの位置が利用可能かどうかを確認しようとしています。ユーザーのgpsが開いている場合、上のコードが機能します。しかし、私はGPSが開いていないかどうかを確認する必要があり、ユーザーの位置を知ることができないときは自分で位置を設定します。ユーザーの場所が利用可能かどうかはどうしたら確認できますか?私はイオン性のネイティブジオロケーションを使用しています。前もって感謝します。イオン2位置が利用できないときに別の場所を設定する

答えて

1

あなたはDiagnosticコルドバplugin.

Diagnostic.isLocationEnabled().then((avail) => { 
    console.log(avail); 
    if(!avail){ 
    return Diagnostic.switchToLocationSettings(); 
    } 
}).catch((err) => { 
    console.log(err); 
}).then(() => { 
    console.log('entered'); 
    return this.getLocation().then(()=>{ //get location }) 

    }) 
を使用することができます
+0

私はこれを行っていますが、まだ問題があります。 Ionicアプリケーションは、アプリケーションのインストール時に1回だけ設定に切り替わります。 GPSをオンにすると、すべて正常に動作します。しかしその後、GPSをオフにしてアプリを閉じてもう一度開くと、設定に切り替わらず、場所の許可を求めることもありません。 – burc

+0

このソリューションを試しましたか?アプリケーションが場所を必要とするときにこれを実行すると、GPSがオフになったときにGPSをオンに切り替えるようにGPS設定が行われます。 – raj

+0

はい私は試しましたが、アプリケーションがインストールされた後にGPS設定が1回だけ表示され、GPS設定がもう反映されません。 – burc

0

あなたは、私は同じ問題を抱えていたこの

let optionsGPS = {timeout: 4000, enableHighAccuracy: true}; 
Geolocation.getCurrentPosition(optionsGPS).then((result) => { 
    this.loadMap(result.coords.latitude, result.coords.longitude); 
}).catch((err) => { 
    let alert = this.alertCtrl.create({ 
     title: 'Error on GPS', 
     subTitle: err, 
     buttons: 'OK' 
    }); 
    alert.present(); 
}); 

を試してみてくださいスローcatch

ためGeolocation.getCurrentPosition()optionsを渡す必要があり、これが私のために働いていました

1

このコードを使用して現在の位置を得ることができます。私は同じ問題を抱えていた。このコードを使用して解決しました:

if (navigator.geolocation) { 
     var options = { 
      timeout: 10000, 
      enableHighAccuracy: false 
     }; 

     navigator.geolocation.getCurrentPosition(position=> { 
      console.info('Position : ' + JSON.stringify(position)); 

     }, error => { 
      console.log(' Error : ' + JSON.stringify(error)); 
     }, options); 
    } else { 
     // you can set your custom position here if not location found. 
    } 
関連する問題