Пример #1
0
        // uses custom filter to select objects within a distance range from
        // chicago
        private void menuItemCustomQueryFilter_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     filter = new  MyCustomFilter(fChicago.Geometry, d1, d2);
                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);

                // show results as selection
                SelectFeatureCollection(fc);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Пример #2
0
        public void CIKernel_BasicTest()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(8, 0))
            {
                Assert.Inconclusive("Custom filters require iOS8+");
            }

            Exception ex = null;
            var       t  = new Thread(() => {
                // This code will crash if an MKMapView has been created previously on
                // the same thread, so just run it on a different thread (MKMapViews can
                // only be created on the main thread). This is obviously an Apple bug,
                // and a radar has been filed: 19249153. ObjC test case: https://github.com/rolfbjarne/CIKernelMKMapViewCrash
                try {
                    PlatformImage uiImg = new PlatformImage(NSBundle.MainBundle.PathForResource("Xam", "png", "CoreImage"));
#if MONOMAC
                    CIImage ciImg     = new CIImage(uiImg.CGImage);
                    CIContext context = new CIContext(null);
#else
                    CIImage ciImg     = new CIImage(uiImg);
                    CIContext context = CIContext.FromOptions(null);
#endif


                    foreach (CustomerFilterType type in Enum.GetValues(typeof(CustomerFilterType)))
                    {
                        MyCustomFilter filter = new MyCustomFilter(type);
                        filter.MyImage        = ciImg;

                        CIImage outputImage = filter.OutputImage;

                        CGImage cgImage = context.CreateCGImage(outputImage, outputImage.Extent);
#if MONOMAC
                        NSImage finalImg = new NSImage(cgImage, new CGSize());
#else
                        UIImage finalImg = new UIImage(cgImage);
#endif
                        Assert.IsNotNull(finalImg, "CIKernel_BasicTest should not be null");
                        Assert.IsTrue(filter.CallbackHit, "CIKernel_BasicTest callback must be hit");
                        if (filter.IsColorKernel)
                        {
                            Assert.IsTrue(filter.kernel is CIColorKernel, "CIKernel_BasicTest we disagree that it is a color kernel");
                        }
                        else
                        {
                            Assert.IsTrue(filter.kernel is CIWarpKernel, "CIKernel_BasicTest we disagree that it is a warp kernel");
                        }
                    }
                } catch (Exception ex2) {
                    ex = ex2;
                }
            });

            t.Start();
            t.Join();
            if (ex != null)
            {
                throw ex;
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            var processor = new PhotoProcessor();

            PhotoProcessor.PhotoFilterHandler filterHandler;

            PhotoFilters filters = new PhotoFilters();

            filterHandler = filters.ApplyBrightness;

            MyCustomFilter myCustomFilter = new MyCustomFilter();

            filterHandler += myCustomFilter.MyCustomFilterMethod;

            processor.Process("path da foto", filterHandler);

            Console.Read();
        }
Пример #4
0
        // 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;
            }
        }