Exemplo n.º 1
0
        public static qGis_ReferenceObject[] GetReferenceObjects(int rule_id, qGis_Rectangle boundary)
        {
            string boundary_as_text = boundary.ToString();

            qGis_ClientGeography [] geo_objects = qGis_ClientGeography.GetObjects(rule_id);

            List <qGis_ReferenceObject> reference_objects_list = new List <qGis_ReferenceObject>();

            if (geo_objects != null)
            {
                foreach (var geo_object in geo_objects)
                {
                    string sql = string.Format("SELECT {0} FROM qGis_ReferenceObjects WHERE geom.Filter ({1}) = 1 {2}",
                                               string.IsNullOrEmpty(geo_object.ReferenceColumns) ? "*" : geo_object.ReferenceColumns,
                                               boundary_as_text,
                                               string.IsNullOrEmpty(geo_object.ReferenceFilter) ? string.Empty : string.Format("AND {0}", geo_object.ReferenceFilter));

                    DbRow[] objects = DbRow.Select(qGis_ReferenceObject.schema, sql, null);

                    qGis_ReferenceObject[] reference_objects = DbRow.CreateArray <qGis_ReferenceObject>(objects, c => new qGis_ReferenceObject(c));

                    if (reference_objects != null)
                    {
                        foreach (qGis_ReferenceObject reference_object in reference_objects)
                        {
                            reference_object.LoadPointsFromGeographyObject();
                            reference_objects_list.Add(reference_object);
                        }
                    }
                }
            }

            return(reference_objects_list.ToArray());
        }
        public static qGis_Object[] GetObjects(qGis_Rectangle boundary)
        {
            SqlQueryParameter sql_left   = new SqlQueryParameter("@Left", boundary.NorthWest.Longitude);
            SqlQueryParameter sql_right  = new SqlQueryParameter("@Right", boundary.NorthEast.Longitude);
            SqlQueryParameter sql_top    = new SqlQueryParameter("@Top", boundary.NorthEast.Latitude);
            SqlQueryParameter sql_bottom = new SqlQueryParameter("@Bottom", boundary.SouthWest.Latitude);

            DbRow[] objects = DbRow.Select(schema2, "SELECT * FROM qGIS_Objects WHERE (Longitude BETWEEN @Left AND @Right) AND (Latitude BETWEEN @Bottom AND @Top)", new SqlQueryParameter [] { sql_left, sql_right, sql_top, sql_bottom });

            return(DbRow.CreateArray <qGis_Object>(objects, c => new qGis_Object(c)));
        }
        public static qGis_Object[] GetObjects(qGis_Rectangle boundary, int search_id)
        {
            SqlQueryParameter sql_left   = new SqlQueryParameter("@Left", boundary.NorthWest.Longitude);
            SqlQueryParameter sql_right  = new SqlQueryParameter("@Right", boundary.NorthEast.Longitude);
            SqlQueryParameter sql_top    = new SqlQueryParameter("@Top", boundary.NorthEast.Latitude);
            SqlQueryParameter sql_bottom = new SqlQueryParameter("@Bottom", boundary.SouthWest.Latitude);

            qDbs_Search search = new qDbs_Search(search_id);

            qDbs_DataGroupConfig data_group_config = new qDbs_DataGroupConfig(search.DataGroupID);

            DbRow[] results = search.GetResults(schema2, string.Format("INNER JOIN qGIS_Objects ON qGIS_Objects.ReferenceID = {0}", data_group_config.KeyColumn), string.Format("qGIS_Objects.DataGroupID = {0} AND (Longitude BETWEEN @Left AND @Right) AND (Latitude BETWEEN @Bottom AND @Top)", search.DataGroupID), sql_left, sql_right, sql_top, sql_bottom);

            return(DbRow.CreateArray <qGis_Object>(results, c => new qGis_Object(c)));
        }
 public qGis_ClusterGrid(qGis_Rectangle boundary, int rule_id, int search_id)
     : this(boundary, rule_id)
 {
     SearchID = search_id;
 }
 public qGis_ClusterGrid(qGis_Rectangle boundary, int rule_id)
     : this()
 {
     Boundary = boundary;
     RuleID = rule_id;
 }
        public static qGis_ReferenceObject[] GetReferenceObjects(int rule_id, qGis_Rectangle boundary)
        {
            string boundary_as_text = boundary.ToString ();

            qGis_ClientGeography [] geo_objects = qGis_ClientGeography.GetObjects(rule_id);

            List<qGis_ReferenceObject> reference_objects_list = new List<qGis_ReferenceObject>();

            if (geo_objects != null)
            {
                foreach (var geo_object in geo_objects)
                {
                    string sql = string.Format("SELECT {0} FROM qGis_ReferenceObjects WHERE geom.Filter ({1}) = 1 {2}",
                        string.IsNullOrEmpty(geo_object.ReferenceColumns) ? "*" : geo_object.ReferenceColumns,
                        boundary_as_text,
                        string.IsNullOrEmpty(geo_object.ReferenceFilter) ? string.Empty : string.Format("AND {0}", geo_object.ReferenceFilter));

                    DbRow[] objects = DbRow.Select(qGis_ReferenceObject.schema, sql, null);

                    qGis_ReferenceObject[] reference_objects = DbRow.CreateArray<qGis_ReferenceObject>(objects, c => new qGis_ReferenceObject(c));

                    if (reference_objects != null)
                    {
                        foreach (qGis_ReferenceObject reference_object in reference_objects)
                        {
                            reference_object.LoadPointsFromGeographyObject();
                            reference_objects_list.Add(reference_object);
                        }
                    }
                }
            }

            return reference_objects_list.ToArray ();
        }
        public static qGis_Object[] GetObjects(qGis_Rectangle boundary, int search_id)
        {
            SqlQueryParameter sql_left = new SqlQueryParameter("@Left", boundary.NorthWest.Longitude);
            SqlQueryParameter sql_right = new SqlQueryParameter("@Right", boundary.NorthEast.Longitude);
            SqlQueryParameter sql_top = new SqlQueryParameter("@Top", boundary.NorthEast.Latitude);
            SqlQueryParameter sql_bottom = new SqlQueryParameter("@Bottom", boundary.SouthWest.Latitude);

            qDbs_Search search = new qDbs_Search(search_id);

            qDbs_DataGroupConfig data_group_config = new qDbs_DataGroupConfig(search.DataGroupID);

            DbRow[] results = search.GetResults(schema2, string.Format("INNER JOIN qGIS_Objects ON qGIS_Objects.ReferenceID = {0}", data_group_config.KeyColumn), string.Format("qGIS_Objects.DataGroupID = {0} AND (Longitude BETWEEN @Left AND @Right) AND (Latitude BETWEEN @Bottom AND @Top)", search.DataGroupID), sql_left, sql_right, sql_top, sql_bottom);

            return DbRow.CreateArray<qGis_Object>(results, c => new qGis_Object(c));
        }
        public static qGis_Object[] GetObjects(qGis_Rectangle boundary)
        {
            SqlQueryParameter sql_left = new SqlQueryParameter("@Left", boundary.NorthWest.Longitude);
            SqlQueryParameter sql_right = new SqlQueryParameter("@Right", boundary.NorthEast.Longitude);
            SqlQueryParameter sql_top = new SqlQueryParameter("@Top", boundary.NorthEast.Latitude);
            SqlQueryParameter sql_bottom = new SqlQueryParameter("@Bottom", boundary.SouthWest.Latitude);

            DbRow[] objects = DbRow.Select(schema2, "SELECT * FROM qGIS_Objects WHERE (Longitude BETWEEN @Left AND @Right) AND (Latitude BETWEEN @Bottom AND @Top)", new SqlQueryParameter [] { sql_left, sql_right, sql_top, sql_bottom });

            return DbRow.CreateArray<qGis_Object>(objects, c => new qGis_Object(c));
        }
Exemplo n.º 9
0
 public qGis_ClusterGrid(qGis_Rectangle boundary, int rule_id, int search_id)
     : this(boundary, rule_id)
 {
     SearchID = search_id;
 }
Exemplo n.º 10
0
 public qGis_ClusterGrid(qGis_Rectangle boundary, int rule_id)
     : this()
 {
     Boundary = boundary;
     RuleID   = rule_id;
 }