예제 #1
0
        public static void Calcular(Grafo.Vertice V)
        {
            foreach (var val in V.Aristas)
            {
                Google.Maps.DistanceMatrix.DistanceMatrixRequest distanceRequest = new Google.Maps.DistanceMatrix.DistanceMatrixRequest()
                {
                    WaypointsOrigin = new List <Google.Maps.Location> {
                        new Google.Maps.LatLng(V.Latitud, V.Longitud)
                    },
                    WaypointsDestination = new List <Google.Maps.Location> {
                        new Google.Maps.LatLng(val.Fin.Latitud, val.Fin.Longitud)
                    },
                    Mode  = TravelMode.driving,
                    Units = Units.metric
                };

                try
                {
                    var response = new Google.Maps.DistanceMatrix.DistanceMatrixService().GetResponse(distanceRequest);
                    val.Costo  = Convert.ToDouble(response.Rows.First().Elements.First().distance.Value);
                    val.Tiempo = Convert.ToDouble(response.Rows.First().Elements.First().duration.Value);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("No fue posible hallar la distancia :c");
                    Debug.WriteLine(ex.Message);
                }
            }
        }
        public static Grafo.Grafo SelecionarEstabelecimentoPorId(int id)
        {
            try
            {
                var d = new DynamicParameters();
                d.Add("@id", id, dbType: DbType.Int32);

                using (DataBase db = new DataBase("SqlServer"))
                {
                    Grafo.Grafo g    = new Grafo.Grafo();
                    var         tipo = db.connection.Query("spListarVerticesPorEstabelecimento", d, commandType: CommandType.StoredProcedure).AsList();
                    foreach (var item in tipo)
                    {
                        Grafo.Vertice v = new Grafo.Vertice(item.codigo);
                        v.Descricao = item.descricao;
                        v.ID        = item.id_vertice;
                        g.Vertices.Add(v);
                    }
                    return(g);
                }
            }
            catch (Exception e)
            {
                throw;
            }
        }