示例#1
0
 public void RouteCalculated()
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         if (webviewMap != null)
         {
             slFake.Children.Remove(webviewMap);
         }
         webviewMap = null;
         RefreshContent();
     });
 }
示例#2
0
        public void StartCalcDistances()
        {
            if (CalcDistance)
            {
                return;
            }
            CalcDistance = true;
            Task.Run(async() =>
            {
                while (CalcDistance)
                {
                    while (webviewMap != null)
                    {
                        await Task.Delay(500);
                        CalcTime += 500;
                        if (CalcTime > 90000)
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                if (webviewMap != null)
                                {
                                    slFake.Children.Remove(webviewMap);
                                }
                                webviewMap = null;
                            });
                            if (calcOrder != null)
                            {
                                calcOrder.CalcDistanceDate = DateTime.Now;
                            }
                        }
                    }
                    if (!CalcDistance)
                    {
                        return;
                    }

                    calcOrder = null;
                    if ((DateTime.Now - (AppData.Crew.ActiveOrder?.CalcDistanceDate ?? DateTime.Now)).TotalMinutes > 3)
                    {
                        calcOrder = AppData.Crew.ActiveOrder;
                    }
                    if (calcOrder == null)
                    {
                        calcOrder = curOrders?.FirstOrDefault(x => (DateTime.Now - x.CalcDistanceDate).TotalMinutes > 3);
                    }
                    if (calcOrder != null)
                    {
                        var curLoc = DependencyService.Get <IAPIHelper>().GetCurrentLocation();
                        if (curLoc?.Latitude > 0 && curLoc?.Longitude > 0)
                        {
                            webviewMap = new WebviewMap
                            {
                                ParentPage    = this,
                                MapId         = MapType.OptimalRoute,
                                Order         = calcOrder,
                                HeightRequest = 0,
                                WidthRequest  = 0
                            };
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                if (webviewMap != null)
                                {
                                    slFake.Children.Add(webviewMap);
                                }
                            });
                        }
                    }
                    await Task.Delay(60000);
                }
            });
        }
示例#3
0
 public WebviewJSBridge(WebviewMapRenderer WebviewMap)
 {
     this.WebviewMap = WebviewMap;
     WebView         = WebviewMap.Element as WebviewMap;
 }