public Grafo.ViewModel.GrafoViewModel[] GetCaminho(int id, int id2)
        {
            Grafo.Grafo g = Negocio.Grafo.SelecionarGrafo(1);
            g = Negocio.Grafo.inicializaAresta(g, 1);

            //g.Dijkstra(id, 707);
            //string arestas = "";

            List <Grafo.Vertice> v = g.Dijkstra(id, id2);

            Grafo.ViewModel.GrafoViewModel[] resultado = new Grafo.ViewModel.GrafoViewModel[v.Count];


            int i = v.Count;

            foreach (var item in v) //g.Vertices.ToList())
            {
                Grafo.ViewModel.GrafoViewModel gvm = new Grafo.ViewModel.GrafoViewModel();
                gvm.codigo       = item.Codigo;
                gvm.descricao    = item.Descricao;
                resultado[i - 1] = gvm;
                i--;
            }
            return(resultado); //g.Dijkstra(id, 707);
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
 public static Grafo.Grafo SolicitarDatos(bool calcularDistancias = false)
 {
     Grafo.Grafo res = new Grafo.Grafo();
     res.CargarGrafo();
     GeolocalizarGrafo(res);
     if (calcularDistancias)
     {
         foreach (var val in res.Vertices)
         {
             Calcular(val);
         }
     }
     return(res);
 }
Ejemplo n.º 4
0
        public static void GeolocalizarGrafo(Grafo.Grafo G)
        {
            foreach (var val in G.Vertices)
            {
                var geoRequest = new GeocodingRequest();
                geoRequest.Address = val.Nombre;
                var geoResponse = new GeocodingService().GetResponse(geoRequest);

                if (geoResponse.Status == ServiceResponseStatus.Ok && geoResponse.Results.Count() > 0)
                {
                    var result = geoResponse.Results.First();

                    val.Alias    = result.FormattedAddress;
                    val.Latitud  = result.Geometry.Location.Latitude;
                    val.Longitud = result.Geometry.Location.Longitude;
                }
                else
                {
                    Debug.WriteLine("No fue posible geolocalizar la posicion :c");
                }
            }
        }