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; }
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); }
public LinearGeneralizer(GeneralizerOptions options) { _options = options; _maxDifference = options.MaxDifferenceInPercent / 100; }