/// <summary> /// Creates an instanc of this class using the given <paramref name="configuration"/> /// </summary> /// <param name="configuration">The configuration</param> public BruTileLayer(IConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } var data = base.ContextMenuItems.Find(m => m.Name == "Data"); if (data != null) { base.ContextMenuItems.Remove(data); } /* * data = base.ContextMenuItems.Find(m => m.Name.StartsWith("Attrib")); * if (data != null) base.ContextMenuItems.Remove(data); */ // Initialize the configuration prior to usage configuration.Initialize(); // _configuration = configuration; var tileSource = configuration.TileSource; _projectionInfo = AuthorityCodeHandler.Instance[tileSource.Schema.Srs]; if (_projectionInfo == null) { _projectionInfo = AuthorityCodeHandler.Instance["EPSG:3857"]; } // WebMercator: set datum to WGS1984 for better accuracy if (tileSource.Schema.Srs == "EPSG:3857") { _projectionInfo.GeographicInfo.Datum = KnownCoordinateSystems.Geographic.World.WGS1984.GeographicInfo.Datum; } Projection = _projection; var extent = tileSource.Schema.Extent; MyExtent = new Extent(extent.MinX, extent.MinY, extent.MaxX, extent.MaxY); base.LegendText = configuration.LegendText; base.LegendItemVisible = true; base.IsVisible = base.Checked = true; base.LegendSymbolMode = SymbolMode.Symbol; LegendType = LegendType.Custom; _tileFetcher = configuration.TileFetcher; _tileFetcher.TileReceived += HandleTileReceived; _tileFetcher.QueueEmpty += HandleQueueEmpty; //Set the wrap mode _imageAttributes = new ImageAttributes(); _imageAttributes.SetWrapMode(WrapMode.TileFlipXY); }
/// <summary> /// Creates an instanc of this class using the given <paramref name="configuration"/> /// </summary> /// <param name="configuration">The configuration</param> public BruTileLayer(IConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } var data = base.ContextMenuItems.Find(m => m.Name == "Data"); if (data != null) { base.ContextMenuItems.Remove(data); } /* * data = base.ContextMenuItems.Find(m => m.Name.StartsWith("Attrib")); * if (data != null) base.ContextMenuItems.Remove(data); */ // Initialize the configuration prior to usage configuration.Initialize(); // _configuration = configuration; var tileSource = configuration.TileSource; // for wmts this might be some crude value (urn) var authorityCode = ToAuthotityCode(tileSource.Schema.Srs); if (!string.IsNullOrWhiteSpace(authorityCode)) { _sourceProjection = AuthorityCodeHandler.Instance[authorityCode]; } else { ProjectionInfo p; if (!TryParseProjectionEsri(tileSource.Schema.Srs, out p)) { if (!TryParseProjectionProj4(tileSource.Schema.Srs, out p)) { p = AuthorityCodeHandler.Instance["EPSG:3857"]; } } _sourceProjection = p; } if (_sourceProjection == null) { _sourceProjection = AuthorityCodeHandler.Instance["EPSG:3857"]; } // WebMercator: set datum to WGS1984 for better accuracy if (tileSource.Schema.Srs == "EPSG:3857") { _sourceProjection.GeographicInfo.Datum = KnownCoordinateSystems.Geographic.World.WGS1984.GeographicInfo.Datum; } Projection = _sourceProjection; var extent = tileSource.Schema.Extent; MyExtent = new DsExtent(extent.MinX, extent.MinY, extent.MaxX, extent.MaxY); base.LegendText = configuration.LegendText; base.LegendItemVisible = true; base.IsVisible = base.Checked = true; base.LegendSymbolMode = SymbolMode.Symbol; LegendType = LegendType.Custom; _tileFetcher = configuration.TileFetcher; _tileFetcher.TileReceived += HandleTileReceived; _tileFetcher.QueueEmpty += HandleQueueEmpty; //Set the wrap mode _imageAttributes = new ImageAttributes(); _imageAttributes.SetWrapMode(WrapMode.TileFlipXY); }