public ZonaVehiculo Create(ZonaVehiculo zona) { TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Montevideo Standard Time"); DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, cstZone); zona.Fecha = cstTime; _zonas.InsertOne(zona); return(zona); }
public IActionResult Post([FromBody] ZonaVehiculo zona) { try { _zonaService.Create(zona); return(Ok(new { result = true, message = "Zona guardada correctamente" })); } catch (Exception) { return(Ok(new { result = false, message = "Los datos enviados no tienen el formato esperado." })); } }
public bool EstaEnLaZona(ZonaVehiculo zona, UbicacionVehiculo ubicacion) { double x = ubicacion.Coordenadas.Lat; double y = ubicacion.Coordenadas.Lng; var inside = false; for (int i = 0, j = zona.Puntos.Count() - 1; i < zona.Puntos.Count(); j = i++) { double xi = zona.Puntos.ElementAt(i).Lat, yi = zona.Puntos.ElementAt(i).Lng; double xj = zona.Puntos.ElementAt(j).Lat, yj = zona.Puntos.ElementAt(j).Lng; var intersect = ((yi > y) != (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); if (intersect) { inside = !inside; } } return(inside); }