Exemplo n.º 1
0
        private void ColocarNovoPontoMapa(LatLng latlngOrigem, LatLng latlngDest, JObject estacionamento)
        {
            MarkerOptions options = new MarkerOptions().SetPosition(latlngOrigem).SetTitle("").SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.dot));

            Marker ponto = GMap.AddMarker(options);

            Marcador marcador = new Marcador(estacionamento, ponto);

            if (latlngDest != null)
            {
                var _latitude  = latlngDest.Latitude;
                var _longitude = latlngDest.Longitude;
                //var _altitude = (ponto["Localizacao"])["Altitude"].Value<double>();
                PolylineOptions opt = new PolylineOptions();
                opt = opt.Add(latlngOrigem, new LatLng(_latitude, _longitude));
                opt = opt.InvokeWidth(5);
                opt = opt.InvokeColor(Color.Red);

                Polyline line = GMap.AddPolyline(opt);
                marcador.Linhas.Add(line);
            }
            if (UltimoPontoInteracao != null)
            {
                marcador.Conexoes.Add(long.Parse(UltimoPontoInteracao.Title));
            }
            marcador             = SalvarPontoInserido(marcador);
            UltimoPontoInteracao = marcador.Marker;
            this.MarcadoresColocados.Add(marcador);
        }
Exemplo n.º 2
0
        private Marcador SalvarPontoInserido(Marcador marcador)
        {
            JArray jPontos = new JArray();


            {
                string  url    = Resources.GetString(Resource.String.ParkingManagerServerURL) + string.Format("api/EstacionamentoModel/{0}/AdicionarPonto", EstacionamentoSelecionado["Id"].Value <long>());
                JObject jPonto = new JObject();
                jPonto.Add("VagasConectadas", null);
                JObject jLocalizacao = new JObject();
                jLocalizacao.Add("Latitude", marcador.Marker.Position.Latitude);
                jLocalizacao.Add("Longitude", marcador.Marker.Position.Longitude);
                jLocalizacao.Add("Altitude", 0);
                jPonto.Add("Localizacao", jLocalizacao);
                jPonto.Add("Entrada", false);
                jPonto.Add("Saida", false);

                using (WebClient wc = new WebClient())
                {
                    wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                    string result = wc.UploadString(url, jPonto.ToString());
                    long   id     = ((JObject)JsonConvert.DeserializeObject(result))["Id"].Value <long>();
                    marcador.Id           = id;
                    marcador.Marker.Title = id.ToString();
                    if (marcador.Conexoes != null && marcador.Conexoes.Count > 0)
                    {
                        AssociarPontos(id, marcador.Conexoes);
                    }

                    return(marcador);
                }
            }
        }
Exemplo n.º 3
0
        public void MarkerClickEvent(object sender, GoogleMap.MarkerClickEventArgs args)
        {
            Marcador marcador = this.MarcadoresColocados.Find(m => m.Marker.Id == args.Marker.Id);

            if (marcador != null)
            {
                UltimoPontoInteracao = args.Marker;
            }
            else
            {
            }
        }
Exemplo n.º 4
0
        private void MostrarPontosNoMapa(JObject estacionamento, JArray lista)
        {
            foreach (var ponto in lista)
            {
                var           latitude  = (ponto["Localizacao"])["Latitude"].Value <double>();
                var           longitude = (ponto["Localizacao"])["Longitude"].Value <double>();
                var           altitude  = (ponto["Localizacao"])["Altitude"].Value <double>();
                LatLng        latlng    = new LatLng(Convert.ToDouble(latitude), Convert.ToDouble(longitude));
                MarkerOptions options   = new MarkerOptions().SetPosition(latlng).SetTitle(ponto["Id"].Value <long>().ToString()).SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.dot));
                Marker        marker    = GMap.AddMarker(options);
                var           vagas     = (JArray)ponto["VagasConectadas"];
                Marcador      marcador  = new Marcador(estacionamento, marker)

                {
                    Id = ponto["Id"].Value <long>()
                };

                foreach (var conexao in ponto["Conexoes"])
                {
                    foreach (var _ponto in lista)
                    {
                        if (_ponto["Id"].Value <long>() == conexao.Value <long>())
                        {
                            var             _latitude  = (_ponto["Localizacao"])["Latitude"].Value <double>();
                            var             _longitude = (_ponto["Localizacao"])["Longitude"].Value <double>();
                            var             _altitude  = (_ponto["Localizacao"])["Altitude"].Value <double>();
                            PolylineOptions opt        = new PolylineOptions();
                            opt = opt.Add(latlng, new LatLng(_latitude, _longitude));
                            opt = opt.InvokeWidth(5);
                            opt = opt.InvokeColor(Color.Red);

                            Polyline line = GMap.AddPolyline(opt);
                            marcador.Linhas.Add(line);
                        }
                    }
                }
                MarcadoresColocados.Add(marcador);


                MostrarVagasNoMapa((JObject)ponto, vagas);
            }
        }
Exemplo n.º 5
0
        private void btNovaVagaClick(object sender, EventArgs e)
        {
            if (EstacionamentoSelecionado == null)
            {
                return;
            }
            this.STATUS_GUI = StatusGUI.CriandoVagas;
            if (eventoEscolhePontoPVaga != null)
            {
                GMap.MarkerClick -= eventoEscolhePontoPVaga;
            }

            eventoEscolhePontoPVaga = (object sendr, GoogleMap.MarkerClickEventArgs args) => {
                GMap.MarkerClick       -= eventoEscolhePontoPVaga;
                eventoEscolhePontoPVaga = null;

                Marcador marcador = this.MarcadoresColocados.Find(m => m.Marker.Id == args.Marker.Id);
                if (marcador != null)
                {
                    eventoEscolheLocalPVaga = (object sendrr, GoogleMap.MapLongClickEventArgs args2) => {
                        GMap.MapLongClick      -= eventoEscolheLocalPVaga;
                        eventoEscolheLocalPVaga = null;

                        this.STATUS_GUI = StatusGUI.Normal;

                        JObject vaga = new JObject();
                        vaga.Add("Id", 0);
                        vaga.Add("Numero", 0);
                        vaga.Add("Tipo", 0);
                        vaga.Add("Ocupacao", null);
                        JObject localizacao = new JObject();
                        localizacao.Add("Latitude", args2.Point.Latitude);
                        localizacao.Add("Longitude", args2.Point.Longitude);
                        localizacao.Add("Altitude", 0);
                        vaga.Add("Localizacao", localizacao);
                        vaga.Add("Pavimento", 0);
                        vaga.Add("Reserva", null);
                        vaga.Add("Responsavel", EstacionamentoSelecionado["Responsavel"]);

                        string vagaJson = vaga.ToString();

                        string url = Resources.GetString(Resource.String.ParkingManagerServerURL) + "api/VagaModels/?idPonto=" + marcador.Id;

                        using (WebClient wc = new WebClient())
                        {
                            wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                            string        result       = wc.UploadString(url, "POST", vagaJson);
                            JObject       vagaInserida = ((JObject)JsonConvert.DeserializeObject(result));
                            MarkerOptions options      = new MarkerOptions().SetPosition(args2.Point).SetTitle("Inserida");

                            Marker          ponto = GMap.AddMarker(options);
                            PolylineOptions opt   = new PolylineOptions();
                            opt = opt.Add(marcador.Marker.Position, args2.Point);
                            opt = opt.InvokeWidth(5);
                            opt = opt.InvokeColor(Color.Red);

                            Polyline line = GMap.AddPolyline(opt);
                        }
                    };

                    GMap.MapLongClick += eventoEscolheLocalPVaga;
                }
            };
            GMap.MarkerClick += eventoEscolhePontoPVaga;
        }