Search code examples
ionic-frameworkionic2geolocationionic3hybrid-mobile-app

Geolocation not working in device ionic3


I am working with ionic 3 location-based work. I am not able to get current location of latitude and longitude here. I mentioned my usable code. It's working fine in browser level but not working in a mobile device.

code

$ ionic cordova plugin add cordova-plugin-geolocation --variable GEOLOCATION_USAGE_DESCRIPTION="To locate you"
$ npm install --save @ionic-native/geolocation
import { Geolocation } from '@ionic-native/geolocation';

constructor(private geolocation: Geolocation) {}

this.geolocation.getCurrentPosition().then((resp) => {
  console.log( resp.coords.latitude)
 console.log( resp.coords.longitude)
}).catch((error) => {
  console.log('Error getting location', error);
});

Solution

  • Try this:

    import { Geolocation } from '@ionic-native/geolocation';
    import { Platform } from 'ionic-angular';
    
    //Set the properties in this class
    long: any; //longitude
    lati: any; //latitude
    
    constructor(private platform: Platform, private geolocation: Geolocation) {
    this.platform.ready().then(()=>{
    
    //set options.. 
    var options = {
               timeout: 20000 //sorry I use this much milliseconds
           }
    //use the geolocation 
    this.geolocation.getCurrentPosition(options).then(data=>{
      this.long = data.coords.longitude;
      this.lati = data.coords.latitude;
     }).catch((err)=>{
         console.log("Error", err);
       });
    });
    }
    

    Let this be in the constructor. Don't forget to agree to the location privacy permission, also enable location option on your Android device(this is probable though).