2017-01-24 4 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); 

    }); 

Ich versuche zu überprüfen, ob die Position des Benutzers verfügbar ist oder nicht. Wenn das GPS des Benutzers geöffnet ist, funktioniert der obige Code. Aber ich muss überprüfen, ob GPS nicht geöffnet ist, und ich werde einen Standort selbst festlegen, wenn ich den Standort des Benutzers nicht ermitteln kann. Wie sollte ich prüfen, ob der Benutzerstandort verfügbar ist oder nicht? Ich verwende ionische native Geolocation. Danke im Voraus.Ionic 2 Geolocation Stellen Sie eine andere Position ein, wenn die Position nicht verfügbar ist

Antwort

1

können Sie verwenden Diagnostic cordova 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

Ich habe das getan, aber immer noch gibt es ein Problem. Die ionische Anwendung wechselt nur einmal zu den Einstellungen, wenn die Anwendung installiert wird. Wenn ich GPS einschalte, funktioniert alles gut. Aber wenn ich danach die GPS-Geräte ausschalte und die App schließe und wieder öffne, wechselt sie nicht zu den Einstellungen oder fragt nicht nach einer Standortgenehmigung. – burc

+0

Haben Sie diese Lösung versucht? Wenn dies ausgeführt wird, wenn die Anwendung einen Standort benötigt, werden die GPS-Einstellungen zum Einschalten von GPS bei ausgeschaltetem Gerät angezeigt. – raj

+0

Ja, ich habe versucht, aber es bringt GPS-Einstellungen nur einmal nach der App installiert und es bringt keine GPS-Einstellungen mehr. – burc

0

Sie passieren müssen options-Geolocation.getCurrentPosition() für throw catch

Versuchen Sie, diese

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(); 
}); 

ich hatte das gleiche Problem, und das war für mich

1

Mit diesem Code können Sie die aktuelle Position ermitteln. Ich hatte dasselbe Problem. Gelöst mit diesem Code:

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. 
    } 
Verwandte Themen