public ActionResult IsPointInPolygonWeb() { db.Configuration.ProxyCreationEnabled = false; int i, j, l, n; gpsinsideOutside gpsInOut = new gpsinsideOutside(); List <vertice> poly = db.vertice.ToList(); List <gps> point = db.gps.ToList(); List <gps> pointOutside = db.gps.ToList(); List <gpsOutside> gpsOutside = new List <gpsOutside>(); List <gpsInside> gpsInside = new List <gpsInside>(); for (l = 0; l < point.Count; l++) { for (i = 0, j = poly.Count - 1; i < poly.Count; j = i++) { if ((((poly[i].latitud <= point[l].latitud) && (point[l].latitud < poly[j].latitud)) || ((poly[j].latitud <= point[l].latitud) && (point[l].latitud < poly[i].latitud))) && (point[l].longitud < (poly[j].longitud - poly[i].longitud) * (point[l].latitud - poly[i].latitud) / (poly[j].latitud - poly[i].latitud) + poly[i].longitud)) { var gpsIn = new gpsInside(); var animal_id = point[l].animal_id; var animal1 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsIn.latitud = point[l].latitud; gpsIn.longitud = point[l].longitud; gpsIn.animal_Id = animal1.id; gpsIn.animal_Tipo = animal1.tipo.nombre; gpsIn.animal_Raza = animal1.raza.nombre; gpsIn.animal_Sexo = animal1.sexo; gpsInside.Add(gpsIn); pointOutside.Remove(point[l]); } else { //c = false; } } } for (n = 0; n < pointOutside.Count; n++) { var gpsOut = new gpsOutside(); var animal_id = pointOutside[n].animal_id; var animal2 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsOut.latitud = pointOutside[n].latitud; gpsOut.longitud = pointOutside[n].longitud; gpsOut.animal_Id = pointOutside[n].animal_id; gpsOut.animal_Tipo = animal2.tipo.nombre; gpsOut.animal_Raza = animal2.raza.nombre; gpsOut.animal_Sexo = animal2.sexo; gpsOutside.Add(gpsOut); } gpsInOut.inside = gpsInside; gpsInOut.outside = gpsOutside; double latA = -40.553298; double longA = -73.143679; double latB = -40.553673; double longB = -73.138422; var locA = new GeoCoordinate(latA, longA); var locB = new GeoCoordinate(latB, longB); double distance = locA.GetDistanceTo(locB); JavaScriptSerializer serializer = new JavaScriptSerializer(); var json = serializer.Serialize(gpsInOut); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult getMakersss() { db.Configuration.ProxyCreationEnabled = false; int l, n; gpsinsideOutside gpsInOut = new gpsinsideOutside(); List <vertice> polygon = db.vertice.ToList(); List <gps> point = db.gps.ToList(); List <gps> pointOutside = db.gps.ToList(); List <gpsOutside> gpsOutside = new List <gpsOutside>(); List <gpsInside> gpsInside = new List <gpsInside>(); //var testPoint = point[2]; bool result = false; int j = polygon.Count() - 1; for (int c = 0; c < point.Count(); c++) //recorrido de GPS { for (int i = 0; i < polygon.Count(); i++) //recorrido por puntos del poligono { //se comprueba si el GPS junto a sus coordenadas se encuentra dentro del poligono if (polygon[i].latitud < point[c].latitud && polygon[j].latitud >= point[c].latitud || polygon[j].latitud < point[c].latitud && polygon[i].latitud >= point[c].latitud) { if (polygon[i].longitud + (point[c].latitud - polygon[i].latitud) / (polygon[j].latitud - polygon[i].latitud) * (polygon[j].longitud - polygon[i].longitud) < point[c].longitud) { result = !result; var aqui = point[c]; var gpsIn = new gpsInside(); var animal_id = point[c].animal_id; var animal1 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsIn.latitud = point[c].latitud; gpsIn.longitud = point[c].longitud; gpsIn.animal_Id = animal1.id; gpsIn.animal_Tipo = animal1.tipo.nombre; gpsIn.animal_Raza = animal1.raza.nombre; gpsIn.animal_Sexo = animal1.sexo; gpsInside.Add(gpsIn); //Agregar GPS a lista de GPS dentro del poligono pointOutside.Remove(point[c]); //eliminando el GPS de la lista de GPS fuera del Poligono } } j = i; } } for (n = 0; n < pointOutside.Count; n++) { var gpsOut = new gpsOutside(); var animal_id = pointOutside[n].animal_id; var animal2 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsOut.latitud = pointOutside[n].latitud; gpsOut.longitud = pointOutside[n].longitud; gpsOut.animal_Id = pointOutside[n].animal_id; gpsOut.animal_Tipo = animal2.tipo.nombre; gpsOut.animal_Raza = animal2.raza.nombre; gpsOut.animal_Sexo = animal2.sexo; gpsOutside.Add(gpsOut); } gpsInOut.inside = gpsInside; gpsInOut.outside = gpsOutside; JavaScriptSerializer serializer = new JavaScriptSerializer(); var json = serializer.Serialize(gpsInOut); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult getMakerss() { db.Configuration.ProxyCreationEnabled = false; int i, j, l, n; gpsinsideOutside gpsInOut = new gpsinsideOutside(); List <vertice> poly = db.vertice.ToList(); List <gps> point = db.gps.ToList(); List <gps> pointOutside = db.gps.ToList(); List <gpsOutside> gpsOutside = new List <gpsOutside>(); List <gpsInside> gpsInside = new List <gpsInside>(); for (l = 0; l < point.Count; l++) { for (i = 0, j = poly.Count - 1; i < poly.Count; j = i++) { if ((((poly[i].latitud <= point[l].latitud) && (point[l].latitud < poly[j].latitud)) || ((poly[j].latitud <= point[l].latitud) && (point[l].latitud < poly[i].latitud))) && (point[l].longitud < (poly[j].longitud - poly[i].longitud) * (point[l].latitud - poly[i].latitud) / (poly[j].latitud - poly[i].latitud) + poly[i].longitud)) { var gpsIn = new gpsInside(); var animal_id = point[l].animal_id; var animal1 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsIn.latitud = point[l].latitud; gpsIn.longitud = point[l].longitud; gpsIn.animal_Id = animal1.id; gpsIn.animal_Tipo = animal1.tipo.nombre; gpsIn.animal_Raza = animal1.raza.nombre; gpsIn.animal_Sexo = animal1.sexo; gpsInside.Add(gpsIn); pointOutside.Remove(point[l]); } else { //c = false; } } } for (n = 0; n < pointOutside.Count; n++) { var gpsOut = new gpsOutside(); var animal_id = pointOutside[n].animal_id; var animal2 = db.animal.Include(a => a.tipo).Include(a => a.raza).SingleOrDefault(a => a.id == animal_id); gpsOut.latitud = pointOutside[n].latitud; gpsOut.longitud = pointOutside[n].longitud; gpsOut.animal_Id = pointOutside[n].animal_id; gpsOut.animal_Tipo = animal2.tipo.nombre; gpsOut.animal_Raza = animal2.raza.nombre; gpsOut.animal_Sexo = animal2.sexo; gpsOutside.Add(gpsOut); } gpsInOut.inside = gpsInside; gpsInOut.outside = gpsOutside; JavaScriptSerializer serializer = new JavaScriptSerializer(); var json = serializer.Serialize(gpsInOut); return(Json(json, JsonRequestBehavior.AllowGet)); }