コード例 #1
0
ファイル: Coordenada.cs プロジェクト: dmagues/CSDRepos
        /// <summary>
        /// Funcion para Obtener la Distancia en metros
        /// </summary>
        /// <param name="cnd"></param>
        /// <returns>Esta variable es de Tipo Coordenada contra la cual se calculara la distancia</returns>
        public double ObtenerDistanciaMetros(Coordenada cnd)
        {
            double x1 = LatitudAMetros(this.Lat);
            double x2 = LatitudAMetros(cnd.ObtenerLatitud());
            double y1 = LongitudAMetros(this.Lng);
            double y2 = LongitudAMetros(cnd.ObtenerLongitud());

            return (Math.Sqrt(Math.Pow((x2 - x1), 2) + (Math.Pow((y2 - y1), 2))));
        }
コード例 #2
0
        /// <summary>
        /// Funcion para Obtener la Distancia en metros
        /// </summary>
        /// <param name="cnd"></param>
        /// <returns>Esta variable es de Tipo Coordenada contra la cual se calculara la distancia</returns>
        public double ObtenerDistanciaMetros(Coordenada cnd)
        {
            double x1 = LatitudAMetros(this.Lat);
            double x2 = LatitudAMetros(cnd.ObtenerLatitud());
            double y1 = LongitudAMetros(this.Lng);
            double y2 = LongitudAMetros(cnd.ObtenerLongitud());

            return(Math.Sqrt(Math.Pow((x2 - x1), 2) + (Math.Pow((y2 - y1), 2))));
        }
コード例 #3
0
        public List <Coordenada> ObtenerPoIsMasCercanosC(double x, double y, double radio, string PCat)
        {
            var op = new Coordenada();

            op.Lat       = x;
            op.Lng       = y;
            op.Categoria = PCat;
            //var distanciasPts = new Dictionary<Coordenada, double>();
            //var lst = ObtenerCoordenadas();

            //lst.ForEach(c => distanciasPts.Add(c, op.ObtenerDistancia(c)));

            //return distanciasPts.OrderBy(c => c.Value);

            var lstPoisCercanos = new List <Coordenada>();

            var lstCooordenadas = ObtenerCoordenadas();

            foreach (var item in lstCooordenadas)
            {
                var dist = op.ObtenerDistanciaMetros(item);
                var cate = item.Categoria;
                //Console.WriteLine(dist);
                //dist = 5;
                if (dist <= radio)
                {
                    if (cate == PCat)
                    {
                        lstPoisCercanos.Add(item);
                    }
                }
            }
            if (lstPoisCercanos.Count > 0)
            {
                return(lstPoisCercanos);
                //Console.WriteLine(lstPoisCercanos);
            }

            else
            {
                return(null);
            }
        }
コード例 #4
0
ファイル: Service1.svc.cs プロジェクト: dmagues/CSDRepos
        public List<Coordenada> ObtenerPoIsMasCercanos(double x, double y, double radio)
        {
            var op = new Coordenada();
            op.Lat = x;
            op.Lng = y;
            //var distanciasPts = new Dictionary<Coordenada, double>();
            //var lst = ObtenerCoordenadas();

            //lst.ForEach(c => distanciasPts.Add(c, op.ObtenerDistancia(c)));

            //return distanciasPts.OrderBy(c => c.Value);

            var lstPoisCercanos = new List<Coordenada>();

            var lstCooordenadas = ObtenerCoordenadas();

            foreach (var item in lstCooordenadas)
            {
                var dist = op.ObtenerDistanciaMetros(item);
                //Console.WriteLine(dist);
                //dist = 5;
                if (dist <= radio)
                {
                    lstPoisCercanos.Add(item);
                }
            }

            if (lstPoisCercanos.Count > 0)
            {
                return lstPoisCercanos;
                //Console.WriteLine(lstPoisCercanos);
            }

            else
            {
                return null;
            }
        }
コード例 #5
0
ファイル: TestBuscarPunto.cs プロジェクト: dmagues/CSDRepos
        public void CompruebaDistancia()
        {
            Coordenada cnds2 = new Coordenada();
            double latx1 = -2.133674;
            double lngy1 = -79.865877;
            double latx2 = -2.132447;
            double lngy2 = -79.863426;

            Cnds.SetCoordenada(latx1, lngy1,"","");
            cnds2.SetCoordenada(latx2, lngy2,"","");
            //Formula: Raiz((X2-X1)^2 + (Y2-Y1)^2)
            double resultado = Math.Sqrt(Math.Pow((latx2 - latx1), 2) + (Math.Pow((lngy2 - lngy1), 2)));
            Assert.AreEqual(resultado, Cnds.ObtenerDistancia(cnds2));

            //Formula: Raiz((X2-X1)^2 + (Y2-Y1)^2)
            double x1 = Cnds.LatitudAMetros(latx1);
            double x2 = Cnds.LatitudAMetros(latx2);
            double y1 = Cnds.LongitudAMetros(lngy1);
            double y2 = Cnds.LongitudAMetros(lngy2);
            double metros = Math.Sqrt(Math.Pow((x2 - x1), 2) + (Math.Pow((y2 - y1), 2)));
            Assert.AreEqual(metros, Cnds.ObtenerDistanciaMetros(cnds2));
            Assert.IsTrue(Cnds.ObtenerDistanciaMetros(cnds2) > 0);
            //Assert.AreEqual(303.96, Cnds.ObtenerDistanciaMetros(cnds2));
        }
コード例 #6
0
 public double  ObtenerDistancia(Coordenada cnd)
 {
     //
     //Formula: Raiz((X2-X1)^2 + (Y2-Y1)^2)
     return(Math.Sqrt(Math.Pow((cnd.ObtenerLatitud() - this.Lat), 2) + (Math.Pow((cnd.ObtenerLongitud() - this.Lng), 2))));
 }
コード例 #7
0
ファイル: Coordenada.cs プロジェクト: dmagues/CSDRepos
 public double ObtenerDistancia( Coordenada cnd)
 {
     //
     //Formula: Raiz((X2-X1)^2 + (Y2-Y1)^2)
     return Math.Sqrt(Math.Pow((cnd.ObtenerLatitud() - this.Lat),2) + (Math.Pow((cnd.ObtenerLongitud() - this.Lng),2)));
 }