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是否未打开,当我无法获得用户的位置时,我将自己设置位置。我该如何检查用户位置是否可用?我正在使用离子原生地理定位。提前致谢。
答案 0 :(得分:1)
您可以使用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 } )
})
答案 1 :(得分: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.
}
答案 2 :(得分:0)
您需要将options
传递给Geolocation.getCurrentPosition()
以获得投掷catch
试试这个
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();
});
我遇到了同样的问题,这对我有用