private void AddWorldCitiesLayer() { this.AddWorldCitiesButton.IsEnabled = false; var mapLayer = new GeoSymbolProportionalMapLayer(); mapLayer.DataSourceKey = DataViewModel.WorldCitiesKey; mapLayer.DataSourceTrademark = CommonStrings.SourceData_GeoCommons; mapLayer.Title = AppStrings.MapLayer_WorldCities; mapLayer.LabelMemberPath = "Label"; mapLayer.RadiusMemberPath = "Population"; mapLayer.FillMemberPath = "Population"; mapLayer.Opacity = 0.75; var fillScale = new ValueBrushScaleView(); fillScale.Brushes.Add(NamedColors.LightGreen.BrushOpacity(0.5)); fillScale.Brushes.Add(NamedColors.Green.BrushOpacity(0.5)); fillScale.MinimumValue = this.ViewModel.DataViewModel.WorldCities.DataSource.Population.Min; fillScale.MaximumValue = this.ViewModel.DataViewModel.WorldCities.DataSource.Population.Max; fillScale.MinimumRange = this.ViewModel.DataViewModel.WorldCities.DataSource.Population.Min; fillScale.MaximumRange = this.ViewModel.DataViewModel.WorldCities.DataSource.Population.Max; fillScale.ValueStringFormat = "#,##0,,.0 M"; mapLayer.FillValueScale = fillScale; mapLayer.RadiusScale.MaximumValue = 75; mapLayer.RadiusScale.MinimumValue = 10; this.ViewModel.MapLayers.Insert(0, mapLayer); }
private void AddWorldEarthquakesLayer() { this.AddWorldEarthquakesButton.IsEnabled = false; var mapLayer = new GeoSymbolProportionalMapLayer(); mapLayer.DataSourceKey = DataViewModel.WorldEarthQuakesKey; mapLayer.DataSourceTrademark = CommonStrings.SourceData_USGS; mapLayer.Title = AppStrings.MapLayer_WorldEarthquakes; mapLayer.LabelMemberPath = "Label"; mapLayer.FillMemberPath = "Magnitude"; mapLayer.RadiusMemberPath = "Magnitude"; mapLayer.Opacity = 0.7; var fillScale = new ValueBrushScaleView(); fillScale.Brushes.Add(NamedColors.Yellow.BrushOpacity(0.5)); fillScale.Brushes.Add(NamedColors.Red.BrushOpacity(0.5)); fillScale.MinimumValue = this.ViewModel.DataViewModel.WorldEarthQuakes.FilterView.MagnitudeMin; fillScale.MaximumValue = this.ViewModel.DataViewModel.WorldEarthQuakes.FilterView.MagnitudeMax; fillScale.MinimumRange = 0; fillScale.MaximumRange = 10; mapLayer.FillValueScale = fillScale; mapLayer.RadiusScale.MaximumValue = 50; mapLayer.RadiusScale.MinimumValue = 10; this.ViewModel.MapLayers.Insert(0, mapLayer); }
private void ShowMapEditor(GeoSymbolProportionalMapLayer mapLayer) { var mapLayerBinding = new Binding() { Source = mapLayer, Mode = BindingMode.OneWay }; var mapEditor = new GeoSymbolLayerEditor(); mapEditor.SetBinding(GeoMapLayerEditor.MapLayerProperty, mapLayerBinding); this.MapLayerControls.Child = mapEditor; this.MapLayerControls.Visibility = Visibility.Visible; }
protected void AddGeoMapLayer(GeoSymbolProportionalMapLayer mapLayer) { mapLayer.PropertyChanged += OnMapLayerChanged; var dataSourceKey = mapLayer.DataSourceKey; //var dataSource = this.DataViewModel.DataSources[dataSourceKey]; GeoDataViewSource dataSource = null; if (dataSourceKey == DataViewModel.WorldCitiesKey) { dataSource = this.DataViewModel.WorldCities; } else if (dataSourceKey == DataViewModel.WorldCountriesKey) { dataSource = this.DataViewModel.WorldCountries; } else if (dataSourceKey == DataViewModel.WorldWeatherKey) { dataSource = this.DataViewModel.WorldWeather; } else if (dataSourceKey == DataViewModel.WorldEarthQuakesKey) { dataSource = this.DataViewModel.WorldEarthQuakes; } //else if (dataSourceKey == DataViewModel.UnitedStatesAirlineTrafficKey) // dataSource = this.DataViewModel.UnitedStatesAirlineTraffic; if (dataSource != null) { mapLayer.DataViewSource = dataSource; mapLayer.SeriesView.Visibility = mapLayer.Visibility; mapLayer.SeriesView.Title = mapLayer.Title; mapLayer.SeriesView.Opacity = mapLayer.Opacity; mapLayer.SeriesView.ItemsSource = mapLayer.DataViewSource.View; //WorldCountries.View; //mapLayer.SeriesView.ItemsSource = dataSource.View; //WorldCountries.View; //mapLayer.ActualSeriesView.MaximumMarkers = dataSource.DataItemsCount; mapLayer.ActualSeriesView.MaximumMarkers = mapLayer.DataViewSource.DataItemsCount; //mapLayer.ActualSeriesView.MarkerCollisionAvoidance = mapLayer.MarkersLayout; //mapLayer.ActualSeriesView.MarkerType = mapLayer.MarkerType; //mapLayer.ActualSeriesView.LongitudeMemberPath = mapLayer.LongitudeMemberPath; //mapLayer.ActualSeriesView.LatitudeMemberPath = mapLayer.LatitudeMemberPath; mapLayer.ActualSeriesView.RadiusMemberPath = mapLayer.RadiusMemberPath; mapLayer.ActualSeriesView.FillMemberPath = mapLayer.FillMemberPath; //mapLayer.ActualSeriesView.FillScale.Brushes = mapLayer.FillValueScale.Brushes; //mapLayer.ActualSeriesView.FillScale. = mapLayer.FillValueScale; mapLayer.ActualSeriesView.FillScale = mapLayer.FillValueScale; //MapLayer.SeriesView.RadiusScale = MapLayer.RadiusScale; //MapLayer.SeriesView.FillScale = MapLayer.FillScale; if (mapLayer.LabelMemberPath != string.Empty) { mapLayer.SeriesView.ToolTip = mapLayer.ToolTip; } //var windowRect = this.Map.GetZoomFromGeographic(mapLayer.DataViewSource.DataWorldRect.ToRect()); //this.Map.WindowRect = windowRect; this.Map.Series.Add(mapLayer.SeriesView); } }