private async void trackToCurrentLoc(String trackKey) { Double cPosLat = 0.00; Double cPosLong = 0.00; var mypos = new Position(cPosLat, cPosLong); var pin = new Pin { Type = PinType.Generic, Position = mypos, Label = "My Location", Address = "" }; System.Diagnostics.Debug.WriteLine(" Getting Driver Locations "); cdQueryAttr qryAcct = new cdQueryAttr(); qryAcct.ColIndex = "IndexName"; qryAcct.IndexName = "cddatetimeindex"; qryAcct.ColName = "cddatetime"; qryAcct.ColValue = trackKey; getTrips tripArray = new getTrips(); cdCallAPI mycallAPI = new cdCallAPI(); while (exitloop == 0) { try { var jsreponse = await mycallAPI.cdcallTrackLocGET(qryAcct); tripArray = JsonConvert.DeserializeObject <getTrips>((string)jsreponse); System.Diagnostics.Debug.WriteLine(" Getting Driver Locations " + jsreponse); cPosLat = Convert.ToDouble(tripArray.Trips[0].cdLatitude); cPosLong = Convert.ToDouble(tripArray.Trips[0].cdLongitude); var map = new Map( MapSpan.FromCenterAndRadius( new Position(cPosLat, cPosLong), Distance.FromMiles(0.3))) { IsShowingUser = true, HeightRequest = 675, WidthRequest = 960, VerticalOptions = LayoutOptions.FillAndExpand }; foreach (var tripLoc in tripArray.Trips) { cPosLat = Convert.ToDouble(tripLoc.cdLatitude); cPosLong = Convert.ToDouble(tripLoc.cdLongitude); mypos = new Position(cPosLat, cPosLong); } pin.Position = mypos; map.Pins.Add(pin); mapStack.Children.Add(map); map.MoveToRegion(MapSpan.FromCenterAndRadius(mypos, Distance.FromMiles(1))); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(" In exception " + ex); await DisplayAlert("Failed to get data. Please try later.", "Failed to get data. Please try later.", "OK"); } await Task.Delay(5000); } }