Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 70440

PlacePredicion Autocomplete isn't working properly

$
0
0

Hi,
I’m using a searchbar for Geolocation inside my app, but it seems like the Autocomplete isn’t working properly.

The first city is autocompleted correctly, but if I erase all text inside the searchbar and put another city, there is no autocompletion.

Below is the part of my code if you can help me, maybe something is wrong.

For information, I’m a beginner, my developper developped my app but he is not working anymore for me.

ngOnInit() {

alert("calling two times");

this.acService = new google.maps.places.AutocompleteService();        

this.autocompleteItems = [];

this.autocomplete = {

 query: ''

};   



if(this.edit==false){

  this.getLocation();

}else{

  this.lat=this.latituded;

  this.lng=this.longitude;

  this.address=this.add;

  this.addmarker();

}

}

updateSearch() {

console.log('modal > updateSearch');

if (this.autocomplete.query == '') {

this.autocompleteItems = [];

return;

}

let self = this; 

let config = { 

types:  ['geocode'], // other types available in the API: 'establishment', 'regions', and 'cities'

input: this.autocomplete.query, 

componentRestrictions: {  } 

}

this.acService.getPlacePredictions(config, function (predictions, status) {

console.log('modal > getPlacePredictions > status > ', status);

self.autocompleteItems = [];      

if(predictions!= null){

  predictions.forEach(function (prediction) {              

    self.autocompleteItems.push(prediction);

    });

}      



});

}

getLocation(){

this.loadMap();

}

choose(event,terms){

this.autocomplete.query = terms;

this.autocompleteItems = this.autocompleteItems.filter((terms) => {

return '';

})

  // alert(terms);

  console.log(terms);

this.address=terms

this.nextaddress=this.address;



this.locationfromsearch=true;

this.addressdiv.nativeElement.innerHTML=this.address;

if(terms.length>= 3){

  this.nativeGeocoder.forwardGeocode(terms, this.forwardoptions)

  .then((coordinates: NativeGeocoderForwardResult[]) => {

    // alert('The coordinates are latitude=' + coordinates[0].latitude + ' and longitude=' + coordinates[0].longitude)

    // alert(coordinates[0].latitude);

    // alert(coordinates[0].longitude);

    let myLatlng:any = {

      lat:coordinates[0].latitude,

      lng:coordinates[0].longitude

    };

    this.map.setCameraTarget(myLatlng);

    this.markerlocation.setPosition(myLatlng);

    this.findExactAddress(coordinates[0].latitude,coordinates[0].longitude)

 

}).catch((error: any) => console.log(error));

}

}

findExactAddress(lat,lng){

this.nativeGeocoder.reverseGeocode(lat,lng)

.then((result:any) => {

// window.localStorage.setItem('country',result[0].countryName);

// window.localStorage.setItem('location',result[0].locality);

// window.localStorage.setItem('city',result[0].subLocality);

// window.localStorage.setItem('latituded', result[0].target.lat);

// window.localStorage.setItem('longitude',result[0].target.lng);

// alert(JSON.stringify(result));

this.country=result[0].countryName;

this.location=result[0].locality;

this.city= result[0].subLocality;



// this.nextaddress=this.nextaddress

// this.latituded=result[0].target.lat

// this.nextaddress = this.generateAddress(result[0]);

// alert(“hello”+this.address);

// this.nextaddress=this.address;

// alert(this.nextaddress);

// this.addressdiv.nativeElement.innerHTML=this.nextaddress;

}).catch((err)=>{

console.log(JSON.stringify(err));

});

}

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 70440

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>