/// <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); }
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)); }
/// <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)); }