private void AddUnitedStatesAirlineTrafficLayer() { this.AddUnitedStatesAirlineTrafficButton.IsEnabled = false; var mapLayer = new GeoMotionMapLayer(); mapLayer.Opacity = 0.7; mapLayer.Title = AppStrings.MapLayer_US_AirlineTraffic; mapLayer.DataSourceKey = DataViewModel.UnitedStatesAirlineTrafficKey; mapLayer.DataSourceTrademark = CommonStrings.SourceData_USAT; mapLayer.AirportsView.LabelMemberPath = "Name"; mapLayer.AirportsView.ActualSeriesView.LongitudeMemberPath = "Longitude"; mapLayer.AirportsView.ActualSeriesView.LatitudeMemberPath = "Latitude"; mapLayer.AirportsView.ActualSeriesView.MarkerBrush = NamedColors.Red.BrushOpacity(0.5); var airportToolTip = Application.Current.Resources["AirportToolTipContent"] as ContentControl; var airportMarker = Application.Current.Resources["AirportMarker2"] as DataTemplate; if (airportMarker != null) { mapLayer.AirportsView.ActualSeriesView.MarkerTemplate = airportMarker; } mapLayer.AirplanesView.LabelMemberPath = "Flight.FlightCode"; mapLayer.AirplanesView.ActualSeriesView.LongitudeMemberPath = "Longitude"; mapLayer.AirplanesView.ActualSeriesView.LatitudeMemberPath = "Latitude"; mapLayer.AirplanesView.ActualSeriesView.MarkerBrush = NamedColors.Red.BrushOpacity(0.75); var airplaneMarker = Application.Current.Resources["AirplaneMarker"] as DataTemplate; if (airplaneMarker != null) { mapLayer.AirplanesView.ActualSeriesView.MarkerTemplate = airplaneMarker; } var airplaneToolTip = Application.Current.Resources["AirplanesToolTipContent"] as ContentControl; if (airplaneToolTip != null) { //mapLayer.AirplanesView.ActualSeriesView.ToolTip = airplaneToolTip; //mapLayer.AirplanesView.ActualSeriesView.ToolTip } this.ViewModel.MapLayers.Insert(0, mapLayer); }
protected void AddGeoMapLayer(GeoMotionMapLayer mapLayer) { mapLayer.PropertyChanged += OnMapLayerChanged; var dataSourceKey = mapLayer.DataSourceKey; if (dataSourceKey == DataViewModel.UnitedStatesAirlineTrafficKey) { var dataSource = this.DataViewModel.DataSources[dataSourceKey] as AirlineTrafficDataViewSource; if (dataSource == null) { return; } //var dataSource = this.DataViewModel.UnitedStatesAirlineTraffic; mapLayer.DataViewSource = dataSource; //TODO add airports - prop series //TODO add flights - symbol series //mapLayer.AirportsView.ActualSeriesView.FillScale = mapLayer.AirportsView.FillValueScale; //mapLayer.AirportsView.ActualSeriesView.ToolTip = mapLayer.AirportsView.ToolTip; mapLayer.AirportsView.ActualSeriesView.ItemsSource = dataSource.ActualAirports; //mapLayer.AirplanesView.ActualSeriesView.ToolTip = mapLayer.AirplanesView.ToolTip; mapLayer.AirplanesView.ActualSeriesView.ItemsSource = dataSource.ActualFlights; mapLayer.AirplanesView.ActualSeriesView.MaximumMarkers = dataSource.ActualFlights.Count; mapLayer.AirplanesView.ActualSeriesView.TransitionDuration = TimeSpan.FromSeconds(0.25); if (mapLayer.AirplanesView.LabelMemberPath != string.Empty) { mapLayer.AirplanesView.ActualSeriesView.ToolTip = mapLayer.AirplanesView.ToolTip; } if (mapLayer.AirportsView.LabelMemberPath != string.Empty) { mapLayer.AirportsView.ActualSeriesView.ToolTip = mapLayer.AirportsView.ToolTip; } var windowRect = this.Map.GetZoomFromGeographic(dataSource.DataWorldRect.ToRect()); this.Map.WindowRect = windowRect; this.Map.Series.Add(mapLayer.AirportsView.ActualSeriesView); this.Map.Series.Add(mapLayer.AirplanesView.ActualSeriesView); } }