public RadarListaPage() { Title = "Meus Radares"; _radaresListView = new ListView { RowHeight = 150 }; _radaresListView.RowHeight = 150; _radaresListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); _radaresListView.ItemTemplate = new DataTemplate(typeof(ConteudoCelula)); _radaresListView.ItemTapped += (sender, e) => { if (e == null) { return; } }; _radaresListView.Footer = new Label() { Text = "" }; RadarBLL regraRadar = RadarFactory.create(); regraRadar.atualizarEndereco(); var radares = regraRadar.listar(true); if (radares.Count > 0) { this.BindingContext = radares; } Content = _radaresListView; }
private void adicionarRadar(RadarInfo radar) { RadarBLL radarBLL = new RadarBLL(); string radarId = radar.Latitude.ToString() + "|" + radar.Longitude.ToString(); if (!Radares.ContainsKey(radarId)) { RadarPin ponto = new RadarPin() { Id = radar.Latitude.ToString() + "|" + radar.Longitude.ToString(), Pin = new Pin() { Type = PinType.Place, Position = new Position(radar.Latitude, radar.Longitude), Label = radar.Velocidade.ToString() + "km/h" }, Sentido = radar.Direcao, Velocidade = radar.Velocidade, Imagem = radarBLL.imagemRadar(radar.Velocidade), Tipo = radar.Tipo }; Radares.Add(ponto.Id, ponto); if (AoDesenharRadar != null) { AoDesenharRadar(this, ponto); } } }
public virtual void cadastrarRadar(Object sender, EventArgs e) { if (InternetUtils.estarConectado()) { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; float latitude = (float)local.Latitude; float longitude = (float)local.Longitude; GeocoderUtils.pegarAsync(latitude, longitude, (send, ev) => { var endereco = ev.Endereco; Emagine.Utils.MensagemUtils.avisar(endereco.Logradouro); }); } try { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; if (local != null) { RadarBLL regraRadar = RadarFactory.create(); regraRadar.inserir(local); MensagemUtils.avisar("Radar incluído com sucesso."); } else { MensagemUtils.avisar("Nenhum movimento registrado pelo GPS."); } } catch (Exception e2) { MensagemUtils.avisar(e2.Message); } }
private static void executarPosicao(LocalizacaoInfo local) { try { _ultimaLocalizacao = local; RadarBLL regraRadar = RadarFactory.create(); PercursoBLL regraPercurso = PercursoFactory.create(); if (RadarBLL.RadarAtual != null) { if (!regraRadar.radarContinuaAFrente(local, RadarBLL.RadarAtual)) { RadarBLL.RadarAtual = null; } } else { double distanciaRadar = (local.Velocidade < 90) ? PreferenciaUtils.DistanciaAlertaUrbano : PreferenciaUtils.DistanciaAlertaEstrada; RadarInfo radar = regraRadar.calcularRadar(local, distanciaRadar); if (radar != null) { local.Distancia = regraRadar.calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); if (PreferenciaUtils.AlertaInteligente) { if ((local.Velocidade - 5) > radar.Velocidade) { avisarRadar(local, radar); } } else { avisarRadar(local, radar); } } } var visualPage = GlobalUtils.Visual; if (visualPage != null) { visualPage.VelocidadeAtual = (float)local.Velocidade; visualPage.Precisao = local.Precisao; visualPage.Sentido = local.Sentido; RadarInfo radar = RadarBLL.RadarAtual; if (radar != null) { visualPage.VelocidadeRadar = radar.Velocidade; visualPage.DistanciaRadar = (float)local.Distancia; } else { visualPage.VelocidadeRadar = 0; visualPage.DistanciaRadar = 0; } visualPage.atualizarPosicao(local); visualPage.redesenhar(); } regraPercurso.executarGravacao(local); } catch (Exception e) { ErroPage.exibir(e); } }
public static RadarBLL create() { if (_Radar == null) { _Radar = new RadarBLL(); } return(_Radar); }
MKAnnotationView GetViewForAnnotation(MKMapView mapView, IMKAnnotation annotation) { RadarBLL radarBLL = new RadarBLL(); var annotationIdentifier = "radarLocal"; MKAnnotationView anView; if (annotation is MKUserLocation) { return(null); } anView = (MKAnnotationView)mapView.DequeueReusableAnnotation(annotationIdentifier); if (anView == null) { anView = new MKAnnotationView(annotation, annotationIdentifier); } switch (_radar.Tipo) { case RadarTipoEnum.RadarFixo: anView.Image = GetImage(radarBLL.imagemRadar(_radar.Velocidade)); break; case RadarTipoEnum.SemaforoComRadar: anView.Image = GetImage("radar_40_semaforo.png"); break; case RadarTipoEnum.SemaforoComCamera: anView.Image = GetImage("semaforo.png"); break; case RadarTipoEnum.RadarMovel: anView.Image = GetImage("radar_movel.png"); break; case RadarTipoEnum.PoliciaRodoviaria: anView.Image = GetImage("policiarodoviaria.png"); break; case RadarTipoEnum.Lombada: anView.Image = GetImage("lombada.png"); break; case RadarTipoEnum.Pedagio: anView.Image = GetImage("pedagio.png"); break; } anView.CanShowCallout = true; return(anView); }
private void inicializarExcluirButton() { _excluirButton = new MenuItem { CommandParameter = "{Binding .}", Text = "Excluir", IsDestructive = true }; _excluirButton.Clicked += (object sender, EventArgs e) => { RadarInfo radar = (RadarInfo)((MenuItem)sender).BindingContext; RadarBLL regraRadar = RadarFactory.create(); regraRadar.excluir(radar); var radarListView = (ListView)this.Parent; var contentPagina = (ContentPage)radarListView.Parent; var pagina = (RadarListaPage)contentPagina.Parent; pagina.atualizarRadar(); }; ContextActions.Add(_excluirButton); }
private void criarBotaoRemover() { _RemoverRadarButton = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("menos.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_RemoverRadarButton, new Rectangle(0.93, 0.93, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_RemoverRadarButton, AbsoluteLayoutFlags.All); _RemoverRadarButton.GestureRecognizers.Add( new TapGestureRecognizer() { Command = new Command(() => { try { AudioUtils.stop(); if (RadarBLL.RadarAtual != null) { RadarBLL regraRadar = RadarFactory.create(); regraRadar.excluir(RadarBLL.RadarAtual); MensagemUtils.avisar("Radar excluído com sucesso."); RadarBLL.RadarAtual = null; } else { MensagemUtils.avisar("Nenhum radar selecionado."); } } catch (Exception e) { MensagemUtils.avisar(e.Message); } } ) }); }
public void atualizarAreaVisivel(MapSpan region) { //var center = region.Center; var latitudeDelta = region.LatitudeDegrees / 2; var longitudeDelta = region.LongitudeDegrees / 2; if (!(latitudeDelta <= PreferenciaUtils.GPSDeltaMax && longitudeDelta <= PreferenciaUtils.GPSDeltaMax)) { return; } RadarBLL regraRadar = RadarFactory.create(); var radares = regraRadar.listar(region.Center.Latitude, region.Center.Longitude, latitudeDelta, longitudeDelta); //var radares = regraRadar.listar(); foreach (RadarInfo radar in radares) { adicionarRadar(radar); } }
protected override void OnAppearing() { RadarBLL regraRadar = RadarFactory.create(); RadarListView.RowHeight = 150; RadarListView.ItemTapped += OnTap; regraRadar.atualizarEndereco(); RadarListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); RadarListView.ItemTemplate = new DataTemplate(typeof(ConteudoCelula)); var radar = regraRadar.listar(true); //desc.VerticalOptions = LayoutOptions.Center; if (radar.Count > 0) { //percursoListView.SetBinding(Label.TextProperty, new Binding("Data")); this.BindingContext = radar; } }
public RadarListaPage() { Title = "Meus Radares"; /* * _ativoListView.ItemTapped += (sender, e) => { * if (e == null) * return; * }; */ RadarBLL regraRadar = RadarFactory.create(); regraRadar.atualizarEndereco(); var paginaAtivo = criarPaginaAtiva(); var paginaInativo = criarPaginaInativo(); atualizarRadar(); Children.Add(paginaAtivo); Children.Add(paginaInativo); }
public ConteudoCelula() { MenuItem excluirRadar = new MenuItem(); excluirRadar.CommandParameter = "{Binding .}"; excluirRadar.Text = "Excluir"; excluirRadar.IsDestructive = true; excluirRadar.Clicked += (object sender, EventArgs e) => { RadarInfo radar = (RadarInfo)((MenuItem)sender).BindingContext; RadarBLL regraRadar = RadarFactory.create(); regraRadar.excluir(radar.Id); var RadarListView = this.Parent as ListView; RadarListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); var percursos = regraRadar.listar(true); RadarListView.BindingContext = percursos; RadarListView.ItemTemplate = new DataTemplate(typeof(ConteudoCelula)); }; this.ContextActions.Add(excluirRadar); //desc.VerticalOptions = LayoutOptions.Center; desc.HorizontalOptions = LayoutOptions.FillAndExpand; desc.Orientation = StackOrientation.Horizontal; StackLayout main = new StackLayout() { Margin = new Thickness(5, 0, 5, 0), VerticalOptions = LayoutOptions.Fill, Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, WidthRequest = TelaUtils.LarguraSemPixel }; Frame cardLeft = new Frame() { HorizontalOptions = LayoutOptions.Start, Margin = new Thickness(0, 0, 0, 0), WidthRequest = main.WidthRequest * 0.2 }; StackLayout cardLeftStack = new StackLayout() { Orientation = StackOrientation.Vertical }; Image percursoIco = new Image() { Source = ImageSource.FromFile("meusradares.png"), WidthRequest = cardLeft.WidthRequest / 1.5, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; cardLeftStack.Children.Add(percursoIco); cardLeft.Content = cardLeftStack; Frame cardRigth = new Frame() { HorizontalOptions = LayoutOptions.Start, WidthRequest = main.WidthRequest * 0.7 }; WrapLayout cardRigthStackHor = new WrapLayout() { //Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, Spacing = 1 }; StackLayout cardRigthStackVer = new StackLayout() { Orientation = StackOrientation.Vertical, Spacing = 1 }; Label titulo = new Label() { //Text = "31/0ut - 17:41", HorizontalOptions = LayoutOptions.StartAndExpand, FontSize = 26, FontFamily = "Roboto-Condensed", TextColor = Color.FromHex(TemaInfo.PrimaryColor) }; titulo.SetBinding(Label.TextProperty, new Binding("DataTituloStr")); Label limite = new Label() { HorizontalOptions = LayoutOptions.StartAndExpand, FontSize = 14, FontFamily = "Roboto-Condensed", TextColor = Color.FromHex(TemaInfo.PrimaryColor) }; limite.SetBinding(Label.TextProperty, new Binding("VelocidadeStr")); Label latitude = new Label() { HorizontalOptions = LayoutOptions.StartAndExpand, FontSize = 14, FontFamily = "Roboto-Condensed", TextColor = Color.FromHex(TemaInfo.PrimaryColor) }; latitude.SetBinding(Label.TextProperty, new Binding("LatitudeText")); Label longitude = new Label() { //Text = "Longitude: -49,23480 ", HorizontalOptions = LayoutOptions.StartAndExpand, FontSize = 14, FontFamily = "Roboto-Condensed", TextColor = Color.FromHex(TemaInfo.PrimaryColor) }; longitude.SetBinding(Label.TextProperty, new Binding("LongitudeText")); Label angulo = new Label() { //Text = "Ângulo: 179.0 ", HorizontalOptions = LayoutOptions.StartAndExpand, FontSize = 14, FontFamily = "Roboto-Condensed", TextColor = Color.FromHex(TemaInfo.PrimaryColor) }; angulo.SetBinding(Label.TextProperty, new Binding("DirecaoText")); Label endereco = new Label() { //Text = "Rua H-149, 1-73 Cidade Vera Cruz/ Aparecida de Goiânia ", HorizontalOptions = LayoutOptions.StartAndExpand, //VerticalOptions = LayoutOptions.StartAndExpand, //WidthRequest = cardRigth.WidthRequest * 0.8, FontSize = 16, FontFamily = "Roboto-Condensed", //HorizontalTextAlignment = TextAlignment.Center }; endereco.SetBinding(Label.TextProperty, new Binding("Endereco")); BoxView linha = new BoxView() { HeightRequest = 1, BackgroundColor = Color.FromHex(TemaInfo.DividerColor), VerticalOptions = LayoutOptions.CenterAndExpand }; if (TelaUtils.Orientacao == "LandscapeLeft" || TelaUtils.Orientacao == "LandscapeRight") { percursoIco.WidthRequest = cardLeft.WidthRequest / 2; //cardLeft.WidthRequest = main.WidthRequest * 0.15; cardRigth.WidthRequest = main.WidthRequest * 0.45; } cardRigthStackVer.Children.Add(titulo); cardRigthStackVer.Children.Add(linha); cardRigthStackHor.Children.Add(limite); cardRigthStackHor.Children.Add(latitude); cardRigthStackHor.Children.Add(longitude); cardRigthStackHor.Children.Add(angulo); cardRigthStackVer.Children.Add(cardRigthStackHor); cardRigthStackVer.Children.Add(endereco); cardRigthStackVer.WidthRequest = main.WidthRequest * 0.8; cardRigth.Content = cardRigthStackVer; main.Children.Add(cardLeft); main.Children.Add(cardRigth); View = main; }
protected virtual void inicializarComponente() { _GPSSentidoLabel = new Label { Text = "0º", FontSize = 16, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; AbsoluteLayout.SetLayoutBounds(_GPSSentidoLabel, new Rectangle(0.9, 0.12, 0.15, 0.15)); //AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.11, 0.12, 0.15, 0.15)); AbsoluteLayout.SetLayoutFlags(_GPSSentidoLabel, AbsoluteLayoutFlags.All); _VelocidadeRadarLabel = new Label { Text = "Velocidade", FontSize = 16, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; if (Device.OS == TargetPlatform.iOS) { } AbsoluteLayout.SetLayoutBounds(_VelocidadeRadarLabel, new Rectangle(1, 0.950, 1, 0.1)); AbsoluteLayout.SetLayoutFlags(_VelocidadeRadarLabel, AbsoluteLayoutFlags.All); _DistanciaRadarLabel = new Label { Text = "0 m", FontSize = 16, //HorizontalTextAlignment = TextAlignment.Center, //VerticalTextAlignment = TextAlignment.Center }; //AbsoluteLayout.SetLayoutBounds(_DistanciaRadarLabel, new Rectangle(1, 0.975, 1, 0.1)); //AbsoluteLayout.SetLayoutFlags(_DistanciaRadarLabel, AbsoluteLayoutFlags.All); if (PreferenciaUtils.ExibirBotaoRemover) { _RemoverRadarButton = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("menos.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_RemoverRadarButton, new Rectangle(0.93, 0.975, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_RemoverRadarButton, AbsoluteLayoutFlags.All); _RemoverRadarButton.GestureRecognizers.Add( new TapGestureRecognizer() { Command = new Command(() => { //var regraAviso = new AvisoSonoroBLL(); //regraAviso.play(RadarTipoEnum.RadarFixo, 40, 300); //AudioUtils.play(AudioEnum.Alarm001); //MensagemUtils.avisar("teste"); //var downloader = new DownloaderAtualizacao(); //downloader.download(); if (InternetUtils.estarConectado()) { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; float latitude = (float)local.Latitude; float longitude = (float)local.Longitude; GeocoderUtils.pegarAsync(latitude, longitude, (sender, e) => { var endereco = e.Endereco; ClubManagement.Utils.MensagemUtils.avisar(endereco.Logradouro); }); } try { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; if (local != null) { RadarBLL regraRadar = RadarFactory.create(); regraRadar.gravar(local, false); MensagemUtils.avisar("Radar incluído com sucesso."); } else { MensagemUtils.avisar("Nenhum movimento registrado pelo GPS."); } } catch (Exception e) { MensagemUtils.avisar(e.Message); } } ) }); } if (PreferenciaUtils.ExibirBotaoAdicionar) { _AdicionarRadarButton = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("mais.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_AdicionarRadarButton, new Rectangle(0.93, 0.975, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_AdicionarRadarButton, AbsoluteLayoutFlags.All); if (TelaUtils.Orientacao == "Landscape") { AbsoluteLayout.SetLayoutBounds(_AdicionarRadarButton, new Rectangle(1, 0.5, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_AdicionarRadarButton, AbsoluteLayoutFlags.All); } _AdicionarRadarButton.GestureRecognizers.Add( new TapGestureRecognizer() { Command = new Command(() => { //var regraAviso = new AvisoSonoroBLL(); //regraAviso.play(RadarTipoEnum.RadarFixo, 40, 300); //AudioUtils.play(AudioEnum.Alarm001); //MensagemUtils.avisar("teste"); //var downloader = new DownloaderAtualizacao(); //downloader.download(); if (InternetUtils.estarConectado()) { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; float latitude = (float)local.Latitude; float longitude = (float)local.Longitude; GeocoderUtils.pegarAsync(latitude, longitude, (sender, e) => { var endereco = e.Endereco; ClubManagement.Utils.MensagemUtils.avisar(endereco.Logradouro); }); } try { LocalizacaoInfo local = GPSUtils.UltimaLocalizacao; if (local != null) { RadarBLL regraRadar = RadarFactory.create(); regraRadar.gravar(local, false); MensagemUtils.avisar("Radar incluído com sucesso."); } else { MensagemUtils.avisar("Nenhum movimento registrado pelo GPS."); } } catch (Exception e) { MensagemUtils.avisar(e.Message); } } ) }); } _BussolaFundo = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("bussolacorpo.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_BussolaFundo, new Rectangle(0.93, 0, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_BussolaFundo, AbsoluteLayoutFlags.All); _BussolaAgulha = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("bussolaagulha.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_BussolaAgulha, new Rectangle(0.93, 0, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_BussolaAgulha, AbsoluteLayoutFlags.All); _PrecisaoFundoImage = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("bussolacorpo.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_PrecisaoFundoImage, new Rectangle(0.07, 0, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_PrecisaoFundoImage, AbsoluteLayoutFlags.All); _PrecisaoImage = new Image { Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("sat04.png"), WidthRequest = 180, HeightRequest = 180 }; AbsoluteLayout.SetLayoutBounds(_PrecisaoImage, new Rectangle(0.11, 0.04, 0.15, 0.15)); AbsoluteLayout.SetLayoutFlags(_PrecisaoImage, AbsoluteLayoutFlags.All); _PrecisaoLabel = new Label { Text = "0 m", FontSize = 16, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; //AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.1, 0.025, 0.1, 0.1)); AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.11, 0.12, 0.15, 0.15)); AbsoluteLayout.SetLayoutFlags(_PrecisaoLabel, AbsoluteLayoutFlags.All); }
public VelocimetroPage() { Title = "Velocimetro"; inicializarComponente(); PercursoBLL percursoBLL = new PercursoBLL(); percursoBLL.atualizarEndereco(); _velocimetro = new Velocimetro { VerticalOptions = LayoutOptions.StartAndExpand, HorizontalOptions = LayoutOptions.StartAndExpand, WidthRequest = TelaUtils.Largura, HeightRequest = TelaUtils.Altura, BackgroundColor = Color.Transparent, Margin = new Thickness(0, 50, 0, 0) }; _absoluteLayout = new AbsoluteLayout(); //absoluteLayout.HorizontalOptions = LayoutOptions.Fill; Frame placa = new Frame(); placa.HorizontalOptions = LayoutOptions.FillAndExpand; placa.VerticalOptions = LayoutOptions.FillAndExpand; StackLayout dentroPlaca = new StackLayout(); dentroPlaca.HorizontalOptions = LayoutOptions.FillAndExpand; dentroPlaca.VerticalOptions = LayoutOptions.Fill; dentroPlaca.Orientation = StackOrientation.Vertical; dentroPlaca.Spacing = 1; RadarBLL radarBLL = RadarFactory.create(); _radarImage = new Image(); _radarImage.Aspect = Aspect.Fill; _radarImage.WidthRequest = 50; _radarImage.HeightRequest = 50; _radarImage.VerticalOptions = LayoutOptions.CenterAndExpand; _radarImage.HorizontalOptions = LayoutOptions.Center; Label fiscalizacao = new Label(); fiscalizacao.Text = "FISCALIZAÇÃO ELETRÔNICA"; fiscalizacao.FontSize = 10; fiscalizacao.TextColor = Color.Black; fiscalizacao.VerticalOptions = LayoutOptions.CenterAndExpand; fiscalizacao.HorizontalOptions = LayoutOptions.Center; caminhoLivre = new Label(); caminhoLivre.Text = "CAMINHO LIVRE"; caminhoLivre.FontSize = 10; caminhoLivre.TextColor = Color.Black; caminhoLivre.VerticalOptions = LayoutOptions.CenterAndExpand; caminhoLivre.HorizontalOptions = LayoutOptions.Center; _DistanciaRadarLabel.TextColor = Color.Black; _DistanciaRadarLabel.VerticalOptions = LayoutOptions.CenterAndExpand; _DistanciaRadarLabel.HorizontalOptions = LayoutOptions.Center; if (TelaUtils.Dispositivo == "Pad") { _velocimetro.Margin = new Thickness(0, -50, 0, 0); _radarImage.WidthRequest = 70; _radarImage.HeightRequest = 70; AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.52, 1, 0.3, 0.25)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } else { AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.5, 0.9, 0.4, 0.3)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } if (TelaUtils.Orientacao == "Landscape") { _velocimetro.Margin = new Thickness(0, -40, 0, 0); double size = Math.Sqrt(Math.Pow(TelaUtils.LarguraDPI, 2) + Math.Pow(TelaUtils.AlturaDPI, 2)); if (size > 6) { AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.4, 1, 0.25, 0.25)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } else { if (size > 7) { AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.35, 1, 0.25, 0.25)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } else { AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.78, 0.5, 0.25, 0.5)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } } //placa.Margin = new Thickness(TelaUtils.LarguraSemPixel / 3, 0, 0, 0); _radarImage.WidthRequest = 50; _radarImage.HeightRequest = 50; AbsoluteLayout.SetLayoutBounds(_BussolaFundo, new Rectangle(1, 0.05, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_BussolaFundo, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(_BussolaAgulha, new Rectangle(1, 0.05, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_BussolaAgulha, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(_GPSSentidoLabel, new Rectangle(1, 0.25, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_GPSSentidoLabel, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(_PrecisaoFundoImage, new Rectangle(1, 0.8, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_PrecisaoFundoImage, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(_PrecisaoImage, new Rectangle(1, 0.8, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_PrecisaoImage, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(1, 1, 0.2, 0.2)); AbsoluteLayout.SetLayoutFlags(_PrecisaoLabel, AbsoluteLayoutFlags.All); //AbsoluteLayout.SetLayoutBounds(_VelocidadeRadarLabel, new Rectangle(0.8, 0.85, 0.2, 0.2)); //AbsoluteLayout.SetLayoutFlags(_VelocidadeRadarLabel, AbsoluteLayoutFlags.All); //AbsoluteLayout.SetLayoutBounds(_DistanciaRadarLabel, new Rectangle(0.8, 0.95, 0.2, 0.2)); //AbsoluteLayout.SetLayoutFlags(_DistanciaRadarLabel, AbsoluteLayoutFlags.All); //_AdicionarRadarButton.Margin = new Thickness(TelaUtils.LarguraSemPixel / 2 + 200, 0, 0, 20); } if (TelaUtils.Orientacao == "LandscapeLeft" || TelaUtils.Orientacao == "LandscapeRight") { if (TelaUtils.Dispositivo == "Pad") { _velocimetro.Margin = new Thickness(10, -310, 0, 0); AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.52, 1, 0.2, 0.3)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); _radarImage.VerticalOptions = LayoutOptions.StartAndExpand; } else { _velocimetro.Margin = new Thickness(TelaUtils.Largura * 0.5 - 70, -270, 0, 0); AbsoluteLayout.SetLayoutBounds(_velocimetro, new Rectangle(1, 1, 1, 0.5)); AbsoluteLayout.SetLayoutFlags(_velocimetro, AbsoluteLayoutFlags.All); _radarImage.WidthRequest = 40; _radarImage.HeightRequest = 40; _radarImage.Margin = new Thickness(0, -9, 0, 0); fiscalizacao.Margin = new Thickness(0, -5, 0, 0); fiscalizacao.VerticalOptions = LayoutOptions.FillAndExpand; fiscalizacao.FontSize = 9; dentroPlaca.Margin = new Thickness(0, -5, 0, 0); _DistanciaRadarLabel.VerticalOptions = LayoutOptions.Start; AbsoluteLayout.SetLayoutBounds(placa, new Rectangle(0.5, 1, 0.2, 0.3)); AbsoluteLayout.SetLayoutFlags(placa, AbsoluteLayoutFlags.All); } } Padding = 5; /* * Content = new AbsoluteLayout * { * Children = { * _velocimetro, * _GPSSentidoLabel, * _VelocidadeRadarLabel, * _DistanciaRadarLabel, * _AdicionarRadarButton, * _BussolaFundo, * _BussolaAgulha, * _PrecisaoFundoImage, * _PrecisaoImage, * _PrecisaoLabel * } * }; */ dentroPlaca.Children.Add(_radarImage); dentroPlaca.Children.Add(caminhoLivre); dentroPlaca.Children.Add(fiscalizacao); dentroPlaca.Children.Add(_DistanciaRadarLabel); _absoluteLayout.Children.Add(_velocimetro); placa.Content = dentroPlaca; _absoluteLayout.Children.Add(placa); // absoluteLayout.Children.Add(_VelocidadeRadarLabel); // absoluteLayout.Children.Add(_DistanciaRadarLabel); if (PreferenciaUtils.Bussola) { _absoluteLayout.Children.Add(_BussolaFundo); _absoluteLayout.Children.Add(_BussolaAgulha); _absoluteLayout.Children.Add(_GPSSentidoLabel); } if (PreferenciaUtils.SinalGPS) { _absoluteLayout.Children.Add(_PrecisaoFundoImage); _absoluteLayout.Children.Add(_PrecisaoImage); _absoluteLayout.Children.Add(_PrecisaoLabel); } if (PreferenciaUtils.ExibirBotaoAdicionar) { _absoluteLayout.Children.Add(_AdicionarRadarButton); } Content = _absoluteLayout; }
private static LocalizacaoInfo executarPosicao(LocalizacaoInfo local) { try { var regraPercurso = PercursoFactory.create(); if (PreferenciaUtils.SalvarPercurso && !PercursoUtils.Gravando && local.Velocidade > 20) { var inicializou = regraPercurso.iniciarGravacao(); } _ultimaLocalizacao = local; RadarBLL regraRadar = RadarFactory.create(); if (RadarBLL.RadarAtual != null) { if (regraRadar.radarContinuaAFrente(local, RadarBLL.RadarAtual)) { RadarInfo radar = RadarBLL.RadarAtual; local.Distancia = calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); } else { RadarBLL.RadarAtual = null; } } else { double distanciaRadar = (local.Velocidade < 90) ? PreferenciaUtils.DistanciaAlertaUrbano : PreferenciaUtils.DistanciaAlertaEstrada; RadarInfo radar = regraRadar.calcularRadar(local, distanciaRadar); if (radar != null) { local.Distancia = calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); if (PreferenciaUtils.AlertaInteligente) { if ((local.Velocidade - 5) > radar.Velocidade) { avisarRadar(local, radar); } } else { if (local.Velocidade > 15) { avisarRadar(local, radar); } } } } regraPercurso.executarGravacao(local, RadarBLL.RadarAtual); var visualPage = GlobalUtils.Visual; if (visualPage != null) { visualPage.VelocidadeAtual = (float)local.Velocidade; visualPage.Precisao = local.Precisao; visualPage.Sentido = local.Sentido; RadarInfo radar = RadarBLL.RadarAtual; if (radar != null) { visualPage.VelocidadeRadar = radar.Velocidade; visualPage.DistanciaRadar = (float)local.Distancia; } else { visualPage.VelocidadeRadar = 0; visualPage.DistanciaRadar = 0; } visualPage.atualizarPosicao(local); visualPage.redesenhar(); } //regraPercurso.executarGravacao(local, RadarBLL.RadarAtual); //MensagemUtils.avisar(MemoryUtils.getInfo().ToString()); } catch (Exception e) { ErroPage.exibir(e); } return(local); }