Professional Documents
Culture Documents
Step 3: Add the DotSpatial Controls into the Visual Studio Toolbox.
Name
pnlMap1
pnlMap2
pnlMap3
pnlMap4
pnlMap5
pnlMap6
BackColor
ActiveCaption
ActiveCaption
ActiveCaption
ActiveCaption
ActiveCaption
ActiveCaption
BorderStyle
Fixed3D
Fixed3D
Fixed3D
Fixed3D
Fixed3D
Fixed3D
Name
lblmap1Projection
lblmap2Projection
lblmap3Projection
lblmap4Projection
lblmap5Projection
lblmap6Projection
lbltotalAreaMap1
lbltotalAreaMap2
lbltotalAreaMap3
lbltotalAreaMap4
lbltotalAreaMap5
lbltotalAreaMap6
lblmap1selectedinfo
lblmap2selectedinfo
lblmap3selectedinfo
lblmap4selectedinfo
lblmap5selectedinfo
lblmap6selectedinfo
lblMap1SelectedAre
a
lblMap1SelectedAre
a
lblMap2SelectedAre
a
lblMap3SelectedAre
a
ForeColor
DarkRed
DarkRed
DarkRed
DarkRed
DarkRed
DarkRed
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
Text
UtmNad1983.NAD1983UTMZone12N
NorthAmerica.NorthAmericaAlbersEqualAreaConic
NorthAmerica.USAContiguousLambertConformalConic
World.CylindricalEqualAreaworld
Polar.NorthPoleAzimuthalEquidistant
NorthAmerica.USAContiguousAlbersEqualAreaConicUSGS
Total Area
Total Area
Total Area
Total Area
Total Area
Total Area
Area of the selected region
Area of the selected region
Area of the selected region
Area of the selected region
Area of the selected region
Area of the selected region
Visible
True
True
True
True
True
True
True
True
True
True
True
True
False
False
False
False
False
False
True
ControlText
True
ControlText
True
ControlText
True
lblMap4SelectedAre
a
lblMap5SelectedAre
a
lblMap6SelectedAre
a
lblmap1info
lblmap2info
lblmap3info
lblmap4info
lblmap5info
lblmap6info
lblmap1difference
lblmap2assumption
lblmap3difference
lblmap4difference
lblmap5difference
lblmap6difference
ControlText
True
ControlText
True
ControlText
True
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
ControlText
False
False
False
False
False
False
False
True
False
False
False
False
Name
lblFieldName
lblSelectedRegion
cmbFiledName
cmbSelectedRegion
btnRegionArea
btnCompareProjections
Text
Field Name
Selected Region
Write a private function as follows: This is used to get the total are of the shape file.
private double _getTotalArea(DotSpatial.Controls.Map mapInput)
{
double stateArea = 0;
if (mapInput.Layers.Count > 0)
{
MapPolygonLayer stateLayer = default(MapPolygonLayer);
stateLayer = (MapPolygonLayer)mapInput.Layers[0];
if ((stateLayer == null))
{
MessageBox.Show("The layer is not a polygon layer.");
}
else
{
foreach (IFeature stateFeature in stateLayer.DataSet.Features)
{
stateArea += stateFeature.Area();
}
}
return stateArea;
Write the following sub method to populate the fieldnames on the fieldname combo box.
private void FillColumnNames(IFeatureSet featureSet)
{
foreach (DataColumn column in featureSet.DataTable.Columns)
{
cmbFiledName.Items.Add(column.ColumnName);
}
}
Write the following sub method for populating the cmbSelectedRegion combo box.
private void FillUniqueValues(string uniqueField, DotSpatial.Controls.Map mapInput)
{
List<string> fieldList = new List<string>();
if (mapInput.Layers.Count > 0)
{
MapPolygonLayer currentLayer = default(MapPolygonLayer);
currentLayer = (MapPolygonLayer)mapInput.Layers[0];
if ((currentLayer == null))
{
MessageBox.Show("The layer is not a polygon layer.");
}
else
{
DataTable dt = currentLayer.DataSet.DataTable;
cmbSelectedRegion.Items.Clear();
foreach (DataRow rows in dt.Rows)
{
cmbSelectedRegion.Items.Add(rows[uniqueField]);
}
}
}
}
true);
true);
true);
true);
true);
true);
= _getArea(cmbFiledName.Text, cmbSelectedRegion.Text,
= _getArea(cmbFiledName.Text, cmbSelectedRegion.Text,
= _getArea(cmbFiledName.Text, cmbSelectedRegion.Text,
= _getArea(cmbFiledName.Text, cmbSelectedRegion.Text,
= _getArea(cmbFiledName.Text, cmbSelectedRegion.Text,
Write the following code under the compare projection button click event.
private void btnCompareProjections_Click(object sender, EventArgs e)
{
lblmap1difference.Text = _calculateDifference(Convert.ToDouble(lblMap2SelectedArea.Text),
Convert.ToDouble(lblMap1SelectedArea.Text)).ToString();
lblmap3difference.Text = _calculateDifference(Convert.ToDouble(lblMap2SelectedArea.Text),
Convert.ToDouble(lblMap3SelectedArea.Text)).ToString();
lblmap4difference.Text = _calculateDifference(Convert.ToDouble(lblMap2SelectedArea.Text),
Convert.ToDouble(lblMap4SelectedArea.Text)).ToString();
lblmap5difference.Text = _calculateDifference(Convert.ToDouble(lblMap2SelectedArea.Text),
Convert.ToDouble(lblMap5SelectedArea.Text)).ToString();
lblmap6difference.Text = _calculateDifference(Convert.ToDouble(lblMap2SelectedArea.Text),
Convert.ToDouble(lblMap6SelectedArea.Text)).ToString();
setVisible(lblmap1difference,
setVisible(lblmap1info, true);
setVisible(lblmap3difference,
setVisible(lblmap3info, true);
setVisible(lblmap4difference,
setVisible(lblmap4info, true);
setVisible(lblmap5difference,
setVisible(lblmap5info, true);
setVisible(lblmap6difference,
setVisible(lblmap6info, true);
true);
true);
true);
true);
true);