ThinkGeo.com    |     Documentation    |     Premium Support

What is the equivalent of RadialGradientBrush in WPFComponent APT?

 


I want to make use of RadialGradientBrush class to define Area style brush on a Layer on  WPFMapSuite. However I don't find an equivalent class in ThinkGeo API. We do have GeoLinearGradientBrush corresponding to LinearGradientBrush but no corresponding to radial gradient.

 



 


 


 


 



 



Hi Anil,



We don't support this brush in our product because brush is actually a wrapper for the Gdi+ brush which is used for drawing on the style and GeoCanvas. You know the GradientBrush doesn't exist in Gdi+; so we can just simulate the same effect. So the attached file implements a new Style as you required. Here is the code how we use this new style.

Map1.MapUnit = GeographyUnit.DecimalDegree;
Map1.CurrentExtent = new RectangleShape(-155.733, 95.60, 104.42, -81.9);

WorldMapKitWmsWpfOverlay worldOverlay = new WorldMapKitWmsWpfOverlay();
Map1.Overlays.Add("WMK", worldOverlay);

RadialGradientAreaStyle areaStyle = new RadialGradientAreaStyle(new PointShape(0.5, 0.5), 2, 2);
areaStyle.GradientStops.Add(new GeoGradientStop(GeoColor.StandardColors.Red, 0));
areaStyle.GradientStops.Add(new GeoGradientStop(GeoColor.StandardColors.Blue, 0.5));
areaStyle.GradientStops.Add(new GeoGradientStop(GeoColor.StandardColors.OrangeRed, 0.7));
areaStyle.GradientStops.Add(new GeoGradientStop(GeoColor.StandardColors.Orange, 1));

InMemoryFeatureLayer shapeLayer = new InMemoryFeatureLayer();
shapeLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(areaStyle);
shapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
shapeLayer.InternalFeatures.Add(new Feature(new RectangleShape(-40, 20, 40, -20)));

LayerOverlay layerOverlay = new LayerOverlay();
layerOverlay.Layers.Add(shapeLayer);
Map1.Overlays.Add(layerOverlay);

Map1.Refresh();
 

Please let us know if you have any questions.



Thanks,

Howard



RadialGradientAreaStyle.txt (6.23 KB)

Thanks Howard. 
  
 It works great!!!

Hi Anil,  
  
 That’s cool; just feel free to let us know if you have more queries. 
  
 Thanks, 
 Howard