/// <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)))); }
/// <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)))); }
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); } }
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; } }
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)); }
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)))); }
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))); }