private void menuItemSetColumns_Click(object sender, System.EventArgs e) { try { // build up a search info by hand (not using the factory) QueryFilter filter = new SqlExpressionFilter("POP_90 < 1000000"); QueryDefinition qd = new QueryDefinition(filter, "MI_Key"); // to Add Columns qd.AppendColumns("State", "MI_Geometry"); // to set all new set of columns // not using MI_Geometry here string[] cols = new string[] { "MI_Key", "MI_Style", "State_Name", "POP_90", "Households_90" }; qd.Columns = cols; // Note: if you are doing a multi table search, the columns must apply to each table // alternatively, you can derive a new class from QueryDefinition and // override the GetColumns() method to return different columns for each table being searched SearchInfo si = new SearchInfo(null, qd); IResultSetFeatureCollection fc = _catalog.Search("mexico", si); // set map view to show search results _map.SetView(_map.Layers["mexico"] as FeatureLayer); // show results as selection SelectFeatureCollection(fc); } finally { Cursor.Current = Cursors.Default; } }
private void menuItemSqlExpressionFilter_Click(object sender, System.EventArgs e) { try { // build up a search info by hand (not using the factory) QueryFilter filter = new SqlExpressionFilter("Buses_91 * 3 < Trucks_91"); QueryDefinition qd = new QueryDefinition(filter, "*"); SearchInfo si = new SearchInfo(null, qd); IResultSetFeatureCollection fc = _catalog.Search("mexico", si); // set map view to show search results _map.SetView(fc.Envelope); // show results as selection SelectFeatureCollection(fc); } finally { Cursor.Current = Cursors.Default; } }
// shows how to combine filters using logical And private void menuItemLogicalFilter_Click(object sender, System.EventArgs e) { try { Feature fChicago = _catalog.SearchForFeature("uscty_1k", MapInfo.Data.SearchInfoFactory.SearchWhere("City='Chicago'")); // build up a search info by hand (not using the factory) Distance d1 = new Distance(35, DistanceUnit.Mile); Distance d2 = new Distance(125, DistanceUnit.Mile); QueryFilter filterA = new MyCustomFilter(fChicago.Geometry, d1, d2); // build up a search info by hand (not using the factory) QueryFilter filterB = new SqlExpressionFilter("State='IL'"); QueryFilter filter = new LogicalFilter(LogicalOperation.And, filterA, filterB); QueryDefinition qd = new QueryDefinition(filter, "*"); SearchInfo si = new SearchInfo(null, qd); IResultSetFeatureCollection fc = _catalog.Search("uscty_1k", si); // set map view to show search results _map.SetView(fc.Envelope); // make a search geometry to show what we are doing FeatureGeometry buffer1 = fChicago.Geometry.Buffer(d1.Value, d1.Unit, 20, DistanceType.Spherical); FeatureGeometry buffer2 = fChicago.Geometry.Buffer(d2.Value, d2.Unit, 20, DistanceType.Spherical); ShowSearchGeometry(buffer1); ShowSearchGeometry(buffer2, false); Feature fIL = _catalog.SearchForFeature("usa", MapInfo.Data.SearchInfoFactory.SearchWhere("State='IL'")); ShowSearchGeometry(fIL.Geometry, false); // show results as selection SelectFeatureCollection(fc); } finally { Cursor.Current = Cursors.Default; } }
// return the first 10 rows from cities sorted by state in reverse private void menuItemCustomProcessor_Click(object sender, System.EventArgs e) { try { QueryFilter filter = new SqlExpressionFilter(null); // all rows QueryDefinition qd = new QueryDefinition(filter, "*"); string [] orderby = new string[1]; orderby[0] = "State Desc"; qd.OrderBy = orderby; SearchResultProcessor srp = new MySearchResultProcessor(10); // stop after 10 rows SearchInfo si = new SearchInfo(srp, qd); IResultSetFeatureCollection fc = _catalog.Search("usa", si); // set map view to show search results _map.SetView(fc.Envelope); // show results as selection SelectFeatureCollection(fc); } finally { Cursor.Current = Cursors.Default; } }
private void menuItemSetColumns_Click(object sender, System.EventArgs e) { try { // build up a search info by hand (not using the factory) QueryFilter filter = new SqlExpressionFilter("POP_90 < 1000000"); QueryDefinition qd = new QueryDefinition(filter, "MI_Key"); // to Add Columns qd.AppendColumns("State", "MI_Geometry"); // to set all new set of columns // not using MI_Geometry here string[] cols = new string[] {"MI_Key", "MI_Style", "State_Name", "POP_90", "Households_90"}; qd.Columns = cols; // Note: if you are doing a multi table search, the columns must apply to each table // alternatively, you can derive a new class from QueryDefinition and // override the GetColumns() method to return different columns for each table being searched SearchInfo si = new SearchInfo(null, qd); IResultSetFeatureCollection fc = _catalog.Search("mexico", si); // set map view to show search results _map.SetView(_map.Layers["mexico"] as FeatureLayer); // show results as selection SelectFeatureCollection(fc); } finally { Cursor.Current = Cursors.Default; } }