@sabarinathen wrote:
My.ts file:
import { Observable } from 'rxjs/Observable'; import { NavController, LoadingController } from 'ionic-angular'; import { Component, ViewChild, ElementRef, Input } from '@angular/core'; import { Geolocation } from '@ionic-native/geolocation'; /** * Generated class for the MyComponent component. * * See https://angular.io/docs/ts/latest/api/core/index/ComponentMetadata-class.html * for more info on Angular Components. */ declare var google; @Component({ selector: 'my', templateUrl: 'my.html' }) export class MyComponent { public isMapIdle: boolean; public map: any; @Input() isPickupRequested:boolean; @ViewChild('map') mapElement: ElementRef; text:string; constructor(public navCtrl: NavController, public loadingCtrl: LoadingController, public geolocation: Geolocation) { this.text="sabari"; } ngOnInit() { this.loadmap(); this.getCurrentLocation().subscribe(location => { this.centerLocation(location); }); } ngViewOnInit() { this.addMapEventListeners(); } addMapEventListeners() { google.maps.event.addListener(this.map, 'dragstart', () => { this.isMapIdle = false; }) google.maps.event.addListener(this.map, 'idle', () => { this.isMapIdle = true; }) } loadmap() { let latLng = new google.maps.LatLng(-34.9290, 138.6010); let mapOptions = { center: latLng, zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP } //this.isPickupRequested = false; this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); } getCurrentLocation(): Observable<any> { let loading = this.loadingCtrl.create({ content: 'Locating...' }); loading.present(loading); let options = { timeout: 10000, enableHighAccuracy: true }; let locationObs = Observable.create(observable => { this.geolocation.getCurrentPosition(options) .then(resp => { let lat = resp.coords.latitude; let lng = resp.coords.longitude; let location = new google.maps.LatLng(lat, lng); console.log('Geolocation: ' + location); observable.next(location); loading.dismiss(); }, (err) => { console.log('Geolocation err: ' + err); loading.dismiss(); }) }) return locationObs; } centerLocation(location) { if (location) { this.map.panTo(location); } else { this.getCurrentLocation().subscribe(currentLocation => { this.map.panTo(currentLocation); }); } } }
Pickup.ts file
import { GoogleMap } from '@ionic-native/google-maps'; import { Component, Input,Output,EventEmitter } from '@angular/core'; declare var google:any; @Component({ selector: 'pickup', templateUrl: 'pickup.html' }) export class PickupComponent { popup: any; // popup: any; image1: string; pickupMarker: any; @Input() map: any; @Input() isPinSet:boolean; @Input() isPickupRequested:boolean; constructor() { } ngOnChanges(changes) { if(!this.isPickupRequested) { this.showPickupMarker(); } else { this.removePickupMarker(); } } showPickupMarker() { this.image1 = '../assets/img/person-icon.png'; this.pickupMarker = new google.maps.Marker({ map:this.map, animation: google.maps.Animation.BOUNCE, icon : this.image1 }) setTimeout( ()=> { this.pickupMarker.setAnimation(null); },800); //this.showPickupTime(); } removePickupMarker() { if(this.pickupMarker) { this.pickupMarker.setMap(null); this.pickupMarker = null; } } /* showPickupTime() { this.popup = new google.maps.InfoWindow({ content: '<h5> You are Here </h5>' }); this.popup.open(this.map, this.pickupMarker); google.maps.event.addListener(this.pickupMarker, 'click', () => { this.popup.open(this.map, this.pickupMarker); }); } */ }
How can i resolve this error??
Posts: 1
Participants: 1