示例#1
0
        /// <summary>
        /// DEVUELVE LA N-ENTIDADES MAS CERCANAS DE UN TEMA A LA ENTIDAD
        /// </summary>
        /// <param name="Map">MAPA DONDE SE DESEAN BUSCAR LAS ENTIDADES</param>
        /// <param name="Theme">CÓDIGO DEL TEMA DONDE SE BUSCAN LAS ENTIDADES</param>
        /// <param name="Filter">FILTRO ALFANUMÉRICO SOBRE EL TEMA (PUEDE SER VACIO)</param>
        /// <param name="MaxEntities">NÚMERO DE ENTIDADES MÁS CERCANAS A BUSCAR</param>
        /// <param name="Entities">ARRAY CON LAS ENTIDADES MÁS CERCANAS ENCONTRADAS</param>
        /// <param name="Distances">ARRAY CON LAS DISTANCIAS A CADA ENTIDAD</param>
        /// <returns></returns>
        public bool GetClosestEntities(geOS_MapWindow Map, string Theme, string Filter, short MaxEntities, ref geOS_MapEntity[] Entities, ref double[] Distances)
        {
            byte[] bIdEntidades = new byte[MaxEntities * sizeof(Int32)];
            byte[] bDistances   = new byte[MaxEntities * sizeof(double)];

            if (geOS_Gestor.GetEntidadesMasCercanasE(Map.Connection.ConnectionId, Map.MapId, this._nIdEntidad,
                                                     MaxEntities, Theme, Filter, bIdEntidades, bDistances) == 0)
            {
                return(false);
            }

            int[] IdEntidades = new int[MaxEntities];

            for (int i = 0; i < MaxEntities; i++)
            {
                IdEntidades[i] = BitConverter.ToInt32(bIdEntidades, i * 4);
                Distances[i]   = BitConverter.ToDouble(bDistances, i * 8);
            }

            for (int i = 0; i < MaxEntities; i++)
            {
                Entities[i] = new geOS_MapEntity(Map.Connection, IdEntidades[i]);
            }

            return(true);
        }
示例#2
0
 public geOS_MapEntity(geOS_MapEntity Entidad)
 {
     this._Conexion   = Entidad.Connection;
     this._nIdEntidad = Entidad.Id;
     this._sTheme     = Entidad._sTheme;
     this._sGeocode   = Entidad._sGeocode;
 }
 /// <summary>
 /// AÑADE MANUALMENTE UNA ENTIDAD AL CONJUNTO DE ENTIDADES
 /// </summary>
 /// <param name="Entity"></param>
 /// <returns></returns>
 public bool AddEntity(geOS_MapEntity Entity)
 {
     return(geOS_Gestor.AddEntidadConjunto(this._Conexion.ConnectionId, this._nIdEntidades, Entity.Id));
 }
示例#4
0
 /// <summary>
 /// DEVUELVE LA DISTANCIA EXISTENTE A LA ENTIDAD QUE SE PASA COMO PARÁMETRO
 /// </summary>
 /// <param name="Entity">ENTIDAD A LA QUE SE DESEA SABER LA DISTANCIA</param>
 /// <returns></returns>
 public double DistanceToEntity(geOS_MapEntity Entity)
 {
     return(geOS_Gestor.DistanciaEntreEntidades(_Conexion.ConnectionId, this._nIdEntidad, Entity.Id));
 }