public MainForm(IGisDataReader dataReader,
                        IDbService dbService,
                        ILogger logger,
                        IGeneralizer generalizer,
                        GeneralizerOptions generalizerOptions,
                        ILinearGeneralizer linearGeneralizer)
        {
            InitializeComponent();

            _viewModel = new MainFormViewModel(Canvas, dataReader, dbService, logger,
                                               generalizer, generalizerOptions, linearGeneralizer);

            InitializeMetaSection();

            InitializeMenu();

            _viewModel.MapsUpdatedEvent += MapsUpdatedEventHandler;

            _scrollTimer              = new ScrollTimer();
            _scrollTimer.ScrollEvent += _scrollTimer_ScrollEvent;


            GeneralizeBtn.Anchor      = AnchorStyles.Bottom | AnchorStyles.Right;
            DrawSourceBtn.Anchor      = AnchorStyles.Bottom | AnchorStyles.Right;
            MinDistanceTextBox.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            label1.Anchor             = AnchorStyles.Bottom | AnchorStyles.Right;

            WindowState = FormWindowState.Maximized;
        }
Пример #2
0
 public MainFormViewModel(Panel canvas,
                          IGisDataReader dataReader,
                          IDbService dbService,
                          ILogger logger,
                          IGeneralizer generalizer,
                          GeneralizerOptions generalizerOptions,
                          ILinearGeneralizer linearGeneralizer)
 {
     _dbService          = dbService;
     _canvas             = canvas;
     _dataReader         = dataReader;
     _drawerFactory      = new DrawerFactory(canvas.CreateGraphics());
     _meta               = new MetaInfo();
     _logger             = logger;
     _generalizer        = generalizer;
     _generalizerOptions = generalizerOptions;
     _linearGeneralizer  = linearGeneralizer;
     _drawablePolygons   = new List <DrawablePolygon>();
 }
        public static StandardKernel GetKernel()
        {
            var kernel = new StandardKernel();

            var generalizerOptions = new GeneralizerOptions
            {
                MinDistance            = 10,
                MinDistanceCoeff       = 3,
                MaxDifferenceInPercent = 3
            };

            kernel.Bind <GeneralizerOptions>().ToConstant(generalizerOptions).InSingletonScope();
            kernel.Bind <IClipper>().To <SimpleClipper>();
            kernel.Bind <ILinearGeneralizer>().To <LinearGeneralizer>();
            kernel.Bind <IGisDataReader>().To <CustomJsonGisDataReader>();
            kernel.Bind <IDrawerFactory>().To <DrawerFactory>();
            kernel.Bind <IDbService>().To <DbService>().InSingletonScope();
            kernel.Bind <DbContext>().To <DataBaseContext>();
            kernel.Bind <ILogger>().ToConstant(LoggerFactory.Create()).InSingletonScope();
            kernel.Bind <IGeneralizePolygonStrategy>().To <ClipperGeneralizationStrategy>();
            kernel.Bind <IGeneralizer>().To <Generalizer>();

            return(kernel);
        }
Пример #4
0
 public LinearGeneralizer(GeneralizerOptions options)
 {
     _options       = options;
     _maxDifference = options.MaxDifferenceInPercent / 100;
 }