static void imageRequest_ImageRequestReceived(object sender, EventArgs e) { var _satelliteImages = (List<SatelliteImage>)sender; foreach (var _satelliteLayer in _satelliteImages) { var shouldAdd = false; foreach (var layer in _layerlist) { if (layer.Equals(_satelliteLayer.Name)) shouldAdd = true; } if (!shouldAdd) continue; var topLeft = SphericalMercator.FromLonLat(_satelliteLayer.Extent.MinX, _satelliteLayer.Extent.MinY); var bottomRight = SphericalMercator.FromLonLat(_satelliteLayer.Extent.MaxX, _satelliteLayer.Extent.MaxY); var newExtend = new BruTile.Extent(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y); var schema = new SphericalMercatorWorldSchema {Extent = newExtend}; var max = _satelliteLayer.MaxLevel + 1; while (schema.Resolutions.Count > max) { schema.Resolutions.RemoveAt(max); } var tms = new TmsTileSource(_satelliteLayer.UrlTileCache, schema); Current.Instance.LayerHelper.AddLayer(new TileLayer(tms) { LayerName = _satelliteLayer.Name }); } }
void CreateTimeLine() { //Genero los items del combo List<SatelliteImage> comboImages = new List<SatelliteImage>(); foreach (var image in satelliteImages.OrderByDescending(x => x.Published)) { if (!includedSatelliteImages.Any(x => x.Id == image.Id)) { comboImages.Add(image); } } this.ImagesCombo.ItemsSource = comboImages; DatesGrid.Children.Clear(); DatesGrid.ColumnDefinitions.Clear(); TimelineMarkersGrid.Children.Clear(); TimelineMarkersGrid.ColumnDefinitions.Clear(); int count = 0; foreach (var image in includedSatelliteImages.OrderBy(x => x.Published)) { DatesGrid.ColumnDefinitions.Add(new ColumnDefinition()); TimelineMarkersGrid.ColumnDefinitions.Add(new ColumnDefinition()); Ellipse ellipse = new Ellipse(); ellipse.Width = 12; ellipse.Height = 12; ellipse.StrokeThickness = 1; ellipse.IsHitTestVisible = false; ellipse.Fill = new SolidColorBrush(Color.FromArgb(255, 170, 203, 13)); ellipse.Stroke = new SolidColorBrush(Color.FromArgb(255, 106, 126, 11)); Grid.SetRow(ellipse, 1); TextBlock textBlock = new TextBlock(); if (image.Name.IndexOf("2008") > -1) { textBlock.Text = image.Name; } else { textBlock.Text = image.Published.Value.ToString("dd-MMM"); } textBlock.Foreground = new SolidColorBrush(Colors.White); textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; textBlock.FontSize = 13; textBlock.Tag = image; textBlock.TextWrapping = TextWrapping.Wrap; if (includedSatelliteImages.Count() > 1 && image.Name.IndexOf("2008") == -1) { textBlock.Cursor = System.Windows.Input.Cursors.Hand; textBlock.MouseLeftButtonDown += textBlock_MouseLeftButtonDown; textBlock.MouseEnter += textBlock_MouseEnter; textBlock.MouseLeave += textBlock_MouseLeave; ToolTipService.SetToolTip(textBlock, Labels.Layers10); } textBlock.FontFamily = new System.Windows.Media.FontFamily("/Earthwatchers.UI;component/Resources/MyriadPro-Regular.otf#Myriad Pro"); Grid.SetColumn(textBlock, count); Grid.SetColumn(ellipse, count); if (count % 2 == 0) { Grid.SetRow(textBlock, 0); } else { Grid.SetRow(textBlock, 2); } double opacity = 0; if (count == includedSatelliteImages.Count() - 1) { textBlock.Margin = new Thickness(0, 0, 5, 0); textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; ellipse.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; opacity = 1; } else if (count == 0) { textBlock.Margin = new Thickness(5, 0, 0, 0); ellipse.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; } else { textBlock.Margin = new Thickness(0, 0, 0, 3); textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; ellipse.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; } this.DatesGrid.Children.Add(textBlock); this.TimelineMarkersGrid.Children.Add(ellipse); if (Current.Instance.LayerHelper.FindLayer(textBlock.Text) == null) { var topLeft = SphericalMercator.FromLonLat(image.Extent.MinX, image.Extent.MinY); var bottomRight = SphericalMercator.FromLonLat(image.Extent.MaxX, image.Extent.MaxY); var newExtend = new BruTile.Extent(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y); var schema = new SphericalMercatorWorldSchema(); schema.Extent = newExtend; var max = image.MaxLevel + 1; while (schema.Resolutions.Count > max) { schema.Resolutions.RemoveAt(max); } var tms = new TmsTileSource(image.UrlTileCache, schema); Current.Instance.LayerHelper.InsertLayer(new TileLayer(tms) { LayerName = textBlock.Text, Opacity = opacity, Tag = image.Published.Value }, count); } count++; } RefreshMap(); }