Hi Tamil,
You can modify your code like this:
public partial class Form1 : Form
{
bool IsFirstLayer = true;
string fileGeoDatabaseFeatureLayerProjectionString;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
Collection<string> tables = FileGeoDatabaseFeatureLayer.GetTableNames(@"..\..\AppData\MapData.gdb");
LayerOverlay layerOverlay = new LayerOverlay();
foreach (string table in tables)
{
FileGeoDatabaseFeatureLayer layer = GetLayer(table.Substring(1));
layerOverlay.Layers.Add(layer);
if (IsFirstLayer)
{
winformsMap1.CurrentExtent = layer.GetBoundingBox();
IsFirstLayer = false;
}
else
{
winformsMap1.CurrentExtent.ExpandToInclude(layer.GetBoundingBox());
}
}
winformsMap1.Overlays.Add(layerOverlay);
winformsMap1.Refresh();
}
private FileGeoDatabaseFeatureLayer GetLayer(string tableName)
{
FileGeoDatabaseFeatureLayer fileGeoDatabaseFeatureLayer = new FileGeoDatabaseFeatureLayer(@"..\..\AppData\MapData.gdb", tableName);
if (IsFirstLayer)
{
fileGeoDatabaseFeatureLayerProjectionString = fileGeoDatabaseFeatureLayer.GetInternalProj4ProjectionParametersString();
}
Proj4Projection proj4 = new Proj4Projection();
proj4.InternalProjectionParametersString = fileGeoDatabaseFeatureLayerProjectionString;
proj4.ExternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString();
proj4.Open();
fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;
fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Canal1;
fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City1;
fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
fileGeoDatabaseFeatureLayer.FeatureSource.Projection = proj4;
fileGeoDatabaseFeatureLayer.Open();
return fileGeoDatabaseFeatureLayer;
}
}
In fact I don’t suggest you render the layer like this, it looks not so well.
You should want to write render logic for each layer, and assign a best current extent so it looks better.
Regards,
Ethan