public List <FeedXively> RetornarMapaLugarDatapoints(double Latitud, double Longitud, string Consulta, DateTime fechaInicio, DateTime fechaFin, string idioma = "Español", double radio = 100)
        {
            string expansion = ObtenerConfig("utilizarExpansion");

            //Crea el Objeto que guarda todo el conocimiento del negocio
            semanticIndexManager = new SemanticIndexManager();

            //Crea una copia de la lista para eliminar los sensores que no se les puede calcular distancia
            List <FeedXively> FeedsConPosicion = new List <FeedXively>();

            //Lista de los resultados de la busqueda
            List <FeedXively> dtsResult = new List <FeedXively>();

            //Buscar la consulta en el índice
            if (!string.IsNullOrEmpty(Consulta) && ObtenerConfiguracion("BusquedaBloqueada") == "No")
            {
                dtsResult = BuscarFeedsDataPoints(Consulta, fechaInicio, fechaFin, idioma);
            }
            else
            {
                return(null);
            }

            //Si encontro sensores entonces validar los que entran en el radio de acción
            if (dtsResult != null)
            {
                List <string> clavesBorrar = new List <string>();

                foreach (FeedXively dtr in dtsResult)
                {
                    if (dtr.feed.location != null && dtr.feed.location.lat != null && dtr.feed.location.lon != null)
                    {
                        //La funcion establece que el sensor este en el rango de N kms del lugar especificado. Si esta devuelve la distancia, sino devuelve cero
                        double distancia = semanticIndexManager.VerificarSensorenLugar(Latitud,
                                                                                       Longitud, Convert.ToDouble(dtr.feed.location.lat, culture),
                                                                                       Convert.ToDouble(dtr.feed.location.lon, culture), radio);
                        if (distancia > 0)
                        {
                            //ListaResultados.Add(indice, distancia);
                            GeonameNode nodolugardistancia = new GeonameNode();
                            nodolugardistancia.Latitud  = Latitud.ToString();
                            nodolugardistancia.Longitud = Longitud.ToString();
                            lugar ld = new lugar();
                            ld.nodoGeoname = nodolugardistancia;
                            ld.distancia   = distancia;
                            //Creamos el espacio en la variable de lista de lugares relacionada al sensor
                            dtr.lugares = new List <lugar>();
                            dtr.lugares.Add(ld);
                            FeedsConPosicion.Add(dtr);
                        }
                    }
                }
            }

            //Finalmente retorna la lista con los sensores correspondientes
            return(FeedsConPosicion);
        }
        public List <FeedXively> RetornarMapaLugarListaSensores(double Latitud, double Longitud, List <FeedXively> dtsResult, string idioma = "Español", double radio = 100)
        {
            //Crea el Objeto que guarda todo el conocimiento del negocio
            semanticIndexManager = new SemanticIndexManager();

            //Crea una copia de la lista para eliminar los sensores que no se les puede calcular distancia
            List <FeedXively> FeedsConPosicion = new List <FeedXively>();

            //Si encontro sensores entonces validar los que entran en el radio de acción
            if (dtsResult != null)
            {
                List <string> clavesBorrar = new List <string>();

                foreach (FeedXively dtr in dtsResult)
                {
                    if (dtr.feed.location != null)
                    {
                        //La funcion establece que el sensor este en el rango de N kms del lugar especificado. Si esta devuelve la distancia, sino devuelve cero
                        double distancia = semanticIndexManager.VerificarSensorenLugar(Latitud,
                                                                                       Longitud, Convert.ToDouble(dtr.feed.location.lat, culture),
                                                                                       Convert.ToDouble(dtr.feed.location.lon, culture), radio);
                        if (distancia > 0)
                        {
                            //ListaResultados.Add(indice, distancia);
                            GeonameNode nodolugardistancia = new GeonameNode();
                            nodolugardistancia.Latitud  = Latitud.ToString();
                            nodolugardistancia.Longitud = Longitud.ToString();
                            lugar ld = new lugar();
                            ld.nodoGeoname = nodolugardistancia;
                            ld.distancia   = distancia;
                            //Creamos el espacio en la variable de lista de lugares relacionada al sensor
                            dtr.lugares = new List <lugar>();
                            dtr.lugares.Add(ld);
                            FeedsConPosicion.Add(dtr);
                        }
                    }
                }
            }

            //Finalmente retorna la lista con los sensores correspondientes
            return(FeedsConPosicion);
        }