diff --git a/src/pages/confirmride/confirmride.ts b/src/pages/confirmride/confirmride.ts
index d9904c5..8367fc4 100644
--- a/src/pages/confirmride/confirmride.ts
+++ b/src/pages/confirmride/confirmride.ts
@@ -27,7 +27,7 @@ export class ConfirmridePage {
         this.book = this.data.getbookingData()
         console.log(this.book)
 
-        var bdata = { 'book_date': this.book.date, 'drop_area': this.book.dropArea, 'pickup_area': this.book.pickArea, 'taxi_type': this.book.carDetails.car_type, 'amount': '', 'km': '', 'promocode': this.book.promocode, 'token': this.local.token, 'userid': this.local.id, 'type': 'later' }
+        var bdata = { 'book_date': this.book.date, 'drop_area': this.book.dropArea, 'pickup_area': this.book.pickArea, 'taxi_type': this.book.carDetails.car_type, 'amount': '', 'km': '', 'promocode': this.book.promocode, 'token': this.local.token, 'userid': this.local.id, 'type': 'later', 'drivers': [] }
 
         this.myservice.load_post(bdata, 'book_cab').subscribe(response => {
           this.myservice.hide_loader()
diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts
index a6a9136..60e3931 100644
--- a/src/pages/home/home.ts
+++ b/src/pages/home/home.ts
@@ -30,6 +30,7 @@ export class HomePage {
   locForm: FormGroup
   geocoder: any;
   local:user
+  directionsDisplay:any;
 
   constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController, public storage: Storage, private geolocation: Geolocation, private firebase: fireService, private db: AngularFireDatabase, private formBuilder: FormBuilder, private data: dataService, private myservice:Myservice) {
 
@@ -40,9 +41,6 @@ export class HomePage {
   }
 
   ionViewDidEnter() {
-    this.myservice.load_post({},'test').subscribe(response=>{
-      
-    })
     this.data.setbookingData('')
 
     this.storage.get('user_data').then(data=>{
@@ -109,7 +107,6 @@ export class HomePage {
       this.markers[0].setMap(null);
     }
     var place = autocomplete.getPlace();
-    console.log(place)
     var lat = place.geometry.location.lat();
     var lng = place.geometry.location.lng();
     
@@ -126,25 +123,27 @@ export class HomePage {
     if (type == 0) {
       this.p_lat = lat
       this.p_lng = lng
+
       this.markers[1] = marker
       this.locForm.controls['pickLoc'].setValue(place.name)
     }
     else if (type == 1) {
       this.d_lat = lat
       this.d_lng = lng
+
       this.markers[2] = marker
       this.locForm.controls['dropLoc'].setValue(place.name)
     }
 
     if (this.p_lat && this.d_lat) {
       var directionsService = new google.maps.DirectionsService;
-      var directionsDisplay = new google.maps.DirectionsRenderer;
-      directionsDisplay.setMap(this.map);
+
+      this.directionsDisplay.setMap(this.map);
 
       var start = new google.maps.LatLng(this.p_lat, this.p_lng);
       var dest = new google.maps.LatLng(this.d_lat, this.d_lng);
 
-      this.calculateAndDisplayRoute(directionsService, directionsDisplay, start, dest);
+      this.calculateAndDisplayRoute(directionsService, this.directionsDisplay, start, dest);
     }
     else{
       this.loadMap(lat,lng)
@@ -167,14 +166,17 @@ export class HomePage {
     this.markers.push(marker)
 
     this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
+
     marker.setMap(this.map);
     for (var i = 0; i < this.driverMarkers.length; i++) {
       this.driverMarkers[i].setMap(this.map);
     }
+
+    this.directionsDisplay = new google.maps.DirectionsRenderer
   }
 
   calculateAndDisplayRoute(directionsService, directionsDisplay, start, dest) {
-
+    console.log(this.markers)
     for (var i = 0; i < this.markers.length; i++) {
       if (this.markers[i])
       this.markers[i].setMap(null);
diff --git a/src/pages/map/map.html b/src/pages/map/map.html
index 2932d22..2267372 100644
--- a/src/pages/map/map.html
+++ b/src/pages/map/map.html
@@ -1,5 +1,5 @@
 <ion-header class="jr_theme_color jr_header">
-    <button ion-button class="jr_left jr_header_btn jr_back_icon" (click)="goBack()"></button>
+    <!-- <button ion-button class="jr_left jr_header_btn jr_back_icon" (click)="goBack()"></button> -->
     <div class="jr_header_title">
       <h4>Map</h4>
     </div>
@@ -9,16 +9,16 @@
 
 <ion-content>
     <div #map id="map"></div>
-    <div class="jr_bottom_distance_card">
+    <!-- <div class="jr_bottom_distance_card">
       <div class="jr_bottom_inside">
-        <input class="jr_dest_input from" placeholder="HSR Layout, Kormangala,Bengalure">
+        <input class="jr_dest_input from" placeholder="HSR Layout, Kormangala,Bengalure" [(ngModel)]="bookData.">
         <input class="jr_dest_input to" placeholder="Jalihalli, Outercity, Bengaluru">
       </div>
-    </div>
+    </div> -->
     
 </ion-content>
 <ion-footer>
   <div class="jr_bottom_button_bay">
-      <button ion-button class="jr_offer_ride2">Cancel</button>
+      <button ion-button class="jr_offer_ride2" (click)="cancel()">Cancel</button>
     </div>
   </ion-footer>
diff --git a/src/pages/map/map.ts b/src/pages/map/map.ts
index 8007947..42ed3a2 100644
--- a/src/pages/map/map.ts
+++ b/src/pages/map/map.ts
@@ -1,5 +1,9 @@
 import { Component, ViewChild, ElementRef } from '@angular/core';
 import { IonicPage, NavController, NavParams } from 'ionic-angular';
+import { dataService } from "../../providers/common.service";
+import * as firebase from 'firebase';
+import { Geolocation } from '@ionic-native/geolocation';
+
 declare var google;
 @IonicPage()
 @Component({
@@ -9,16 +13,51 @@ declare var google;
 export class MapPage {
   @ViewChild('map') mapElement: ElementRef;
   map: any;
-  constructor(public navCtrl: NavController, public navParams: NavParams) {
+  directionsDisplay: any;
+  bookData:any;
+
+  constructor(public navCtrl: NavController, public navParams: NavParams, private data: dataService, private geolocation: Geolocation) {
+  }
+
+  ionViewWillEnter(){
+    this.geolocation.getCurrentPosition().then((resp) => {
+      this.loadMap(resp.coords.latitude, resp.coords.longitude);
+    }).catch((error) => {
+      console.log('Error getting location', error);
+    });
   }
 
-  ionViewDidLoad() {
-    this.loadMap();
+  ionViewDidEnter(){
+    var driver = this.data.getdriverData();
+    this.bookData = this.data.getbookingData();
+    console.log(this.bookData)
+    var This = this;
+
+    firebase.database().ref().child('/drivers/').orderByChild("id").equalTo(Number(driver.driverId)).on("value", function (snapshot) {
+      var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
+      console.log(res_arr[0])
+      var directionsService = new google.maps.DirectionsService;
+      
+      This.directionsDisplay.setMap(This.map);
+      
+      var pickLoc = new google.maps.LatLng(This.bookData.pickLat, This.bookData.pickLng);
+      var driverLoc = new google.maps.LatLng(res_arr[0].lat, res_arr[0].lng);
+      
+      // if (google.maps.geometry.spherical.computeDistanceBetween(driverLoc, pickLoc) < 50) {
+        
+      // }
+
+      This.calculateAndDisplayRoute(directionsService, This.directionsDisplay, pickLoc, driverLoc);
+    });
   }
 
-  loadMap(){
+  // ionViewDidLoad() {
+  //   this.loadMap();
+  // }
+
+  loadMap(lat,lng){
  
-    let latLng = new google.maps.LatLng(-34.9290, 138.6010);
+    let latLng = new google.maps.LatLng(lat, lng);
  
     let mapOptions = {
       center: latLng,
@@ -27,7 +66,32 @@ export class MapPage {
     }
  
     this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
- 
+
+    this.directionsDisplay = new google.maps.DirectionsRenderer({
+      map: this.map,
+      preserveViewport: true
+    });
   }
 
+  calculateAndDisplayRoute(directionsService, directionsDisplay, start, dest) {
+    var This = this
+    directionsService.route({
+      origin: start,
+      destination: dest,
+      travelMode: 'DRIVING'
+    }, function (response, status) {
+      if (status === 'OK') {
+        directionsDisplay.setDirections(response);
+        var bounds = response.routes[0].bounds;
+        This.map.fitBounds(bounds);
+        This.map.setCenter(bounds.getCenter());
+      } else {
+        window.alert('Directions request failed due to ' + status);
+      }
+    });
+  }
+
+  cancel(){
+    this.navCtrl.pop();
+  }
 }
diff --git a/src/pages/ridedetail/ridedetail.html b/src/pages/ridedetail/ridedetail.html
index 2dd3763..3ba33d5 100644
--- a/src/pages/ridedetail/ridedetail.html
+++ b/src/pages/ridedetail/ridedetail.html
@@ -39,19 +39,21 @@
   <!-- <div class="jr_search_bottom_bay jr_padding0">
   <div class="loader"></div>
   </div> -->
-  <!-- <div class="jr_search_bottom_bay jr_padding0">
+<span *ngIf="driver">
+  <div class="jr_search_bottom_bay jr_padding0">
     <div class="jr_search_profile">
-      <img src="assets/img/e_img14.png">
+      <img [src]=driver.image>
     </div>
     <div class="jr_search_profile_detail">
       <br>
-      <h6>MARIA LORENZA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;37 Y/O</h6>
-      <span class="jr_star_ratting"><img src="assets/img/jr_star.png"><strong>3/5</strong>1 Rattings</span><br>
+      <h6>{{driver.name}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{driver.age}} Y/O</h6>
+      <span class="jr_star_ratting"><img src="assets/img/jr_star.png"><strong>{{driver.rating}}/5</strong>{{driver.ratingCount}} Ratings</span><br>
     </div>
     <div class="jr_clear"></div>
   </div>
   <br>
-  <hr>
+  </span>
+  <!-- <hr>
    <div class="jr_car_info">
      <div class="">
         <ion-grid class="jr_padding0">
@@ -86,8 +88,9 @@
      </div>
      <div class="jr_clear"></div>
    </div> -->
+  
    <div class="jr_bottom_button_bay">
-      <button ion-button class="jr_offer_ride2">Track Driver</button>
+      <button ion-button class="jr_offer_ride2" (click)="track()">Track Driver</button>
     </div>
 </div>
 
diff --git a/src/pages/ridedetail/ridedetail.ts b/src/pages/ridedetail/ridedetail.ts
index 807f5f9..d27aaa9 100644
--- a/src/pages/ridedetail/ridedetail.ts
+++ b/src/pages/ridedetail/ridedetail.ts
@@ -1,9 +1,10 @@
 import { Component, NgZone } from '@angular/core';
-import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular';
+import { IonicPage, NavController, NavParams, Platform, LoadingController, AlertController } from 'ionic-angular';
 import { dataService } from "../../providers/common.service";
 import { Myservice } from "../../providers/myservice";
 import { Storage } from "@ionic/storage";
 import { user } from "../../models/mymodel";
+import * as firebase from 'firebase';
 
 declare var google;
 @IonicPage()
@@ -17,29 +18,45 @@ export class RidedetailPage {
   loc = { from: '', to: '', fromAd: '', toAd: '' }
   local: user
   public unregisterBackButtonAction: any;
+  count:number = 0;
+  loader:any;
+  driver:any;
+  bkid:any = 10;
+  drivers = []
 
-  constructor(public navCtrl: NavController, public navParams: NavParams, private data: dataService, private zone: NgZone, private myservice: Myservice, private storage: Storage, public platform: Platform) {
+  constructor(public navCtrl: NavController, public navParams: NavParams, private data: dataService, private zone: NgZone, private myservice: Myservice, private storage: Storage, public platform: Platform, public loadingCtrl: LoadingController, private alertCtrl:AlertController) {
   }
 
   ionViewDidEnter() {
-    // this.myservice.show_loader()
     this.initializeBackButtonCustomHandler();
     this.storage.get('user_data').then(data => {
       if (data) {
         this.local = data
         this.book = this.data.getbookingData()
         console.log(this.book)
-        var bdata = { 'book_date': this.book.date, 'drop_area': this.book.dropArea, 'pickup_area': this.book.pickArea, 'taxi_type': this.book.carDetails.car_type, 'amount': '', 'km': '', 'promocode': this.book.promocode, 'token': this.local.token, 'userid': this.local.id, 'type':'now' }
-        this.myservice.load_post(bdata, 'book_cab').subscribe(response => {
-          this.myservice.hide_loader()
-          if (response.status == 'success') {
-            this.myservice.load_post({},'checkBookingStatus')
-          }
-          else {
-            this.myservice.show_alert('Failed', 'Please try again')
-            this.navCtrl.pop()
-          }
-        })
+        this.findDrivers()
+
+        var bdata = { 'book_date': this.book.date, 'drop_area': this.book.dropArea, 'pickup_area': this.book.pickArea, 'taxi_type': this.book.carDetails.car_type, 'amount': '', 'km': '', 'promocode': this.book.promocode, 'token': this.local.token, 'userid': this.local.id, 'type':'now','drivers':[] }
+
+        this.loader = this.loadingCtrl.create({
+          content: "Searching for driver"
+        });
+        this.loader.present();
+        
+
+        bdata.drivers = this.drivers;
+
+        console.log(bdata)
+        // this.myservice.load_post(bdata, 'book_cab').subscribe(response => {
+        //   if (response.status == 'success') {
+        //     this.bkid = response.data
+            this.checkResp();
+          // }
+        //   else {
+        //     this.myservice.show_alert('Failed', 'Please try again')
+        //     this.navCtrl.pop()
+        //   }
+        // })
 
         this.geocoder = new google.maps.Geocoder();
         for (let i = 0; i < 2; i++) {
@@ -76,6 +93,76 @@ export class RidedetailPage {
     })
   }
 
+  findDrivers(){
+    var This = this
+    firebase.database().ref().child('/drivers/').orderByChild("status").equalTo('online').once("value", function (snapshot) {
+      var res_arr = (<any>Object).entries(snapshot.val()).map(e => Object.assign(e[1], { key: e[0] }));
+      console.log(res_arr)
+      This.drivers = [];
+      for (let i = 0; i < res_arr.length; i++) {
+        var mypos = new google.maps.LatLng(This.book.pickLat, This.book.pickLng);
+        let driverLoc = new google.maps.LatLng(res_arr[i].lat, res_arr[i].lng)
+        if (google.maps.geometry.spherical.computeDistanceBetween(driverLoc, mypos) < 5000) {
+          This.drivers.push(res_arr[i].id)
+        }
+      }
+    });
+  }
+
+  showAlert(){
+    let alert = this.alertCtrl.create({
+      title: 'No drivers found',
+      message: 'Please search again.',
+      buttons: [
+        {
+          text: 'Cancel',
+          role: 'cancel',
+          handler: () => { }
+        },
+        {
+          text: 'Search',
+          handler: () => {
+
+            this.loader = this.loadingCtrl.create({
+              content: "Searching for driver"
+            });
+            this.loader.present();
+
+            this.findDrivers()
+            var This = this;
+            setTimeout(() => {
+              This.myservice.load_post({ taxiType: This.book.carDetails.car_type, type:'now',driversid: This.drivers }, 'driverPush').subscribe(data => {
+                if(data.status == 'success')
+                This.checkResp();
+              })
+            }, 500);
+          }
+        }
+      ]
+    });
+    alert.present();
+  }
+
+  checkResp(){
+    var This = this;
+    var intrvl = setInterval(function () {
+      This.count++;
+      This.myservice.load_post({ bkid: This.bkid }, 'checkBookingStatus').subscribe(resp => {
+        console.log(resp.data.assigned_for)
+        if (resp.data.assigned_for) {
+          This.driver = resp.data
+          clearInterval(intrvl)
+          This.loader.dismissAll();
+        }
+      })
+      if (This.count == 12) {
+        clearInterval(intrvl)
+        This.loader.dismissAll();
+        This.showAlert();
+      }
+    }, 5000)
+  }
+
   public initializeBackButtonCustomHandler(): void {
     this.unregisterBackButtonAction = this.platform.registerBackButtonAction(() => {
       // this.customHandleBackButton();
@@ -85,4 +172,9 @@ export class RidedetailPage {
   ionViewWillLeave() {
     this.unregisterBackButtonAction && this.unregisterBackButtonAction();
   }
+
+  track(){
+    this.data.setdriverData(this.driver)
+    this.navCtrl.push('MapPage')
+  }
 }
diff --git a/src/providers/common.service.ts b/src/providers/common.service.ts
index d4d89bf..b18f54e 100644
--- a/src/providers/common.service.ts
+++ b/src/providers/common.service.ts
@@ -5,6 +5,7 @@ export class dataService {
 
 bookingData:any;
 rateData:any;
+driverData:any;
 
     constructor() { }
 
@@ -23,6 +24,13 @@ rateData:any;
     public getrateData(){
         return this.rateData;
     }
+    public setdriverData(val){
+        this.driverData = val;
+    }
+
+    public getdriverData(){
+        return this.driverData;
+    }
 
 
 }
\ No newline at end of file