Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
        }