@@ -21,6 +21,7 @@ public partial class MapsAreaCaptureTool : Form
2121 private GMapOverlay selectOverlay = new GMapOverlay ( ) ;
2222 private GMapOverlay captureOverlay = new GMapOverlay ( ) ;
2323 private PointLatLng selStartCoord ;
24+ private string filename = "" ;
2425 private string grid = "" ;
2526
2627 public MapsAreaCaptureTool ( )
@@ -41,6 +42,21 @@ private void MapsAreaCaptureTool_Load(object sender, EventArgs e)
4142 gMapControl . Overlays . Add ( captureOverlay ) ;
4243 }
4344
45+ private void SaveFile ( string filename )
46+ {
47+ using ( StreamWriter writer = new StreamWriter ( filename ) )
48+ {
49+ writer . WriteLine ( "CamAlt=" + camAltitude ) ;
50+ writer . WriteLine ( "Overlap=" + numOverlap . Value ) ;
51+ writer . WriteLine ( "AlignCaptures=" + chbAlignCaptures . Checked ) ;
52+ writer . WriteLine ( "Grid=" + grid ) ;
53+ writer . Write ( "Captures=" ) ;
54+
55+ foreach ( Capture capture in capturesList )
56+ writer . Write ( capture . Coordinate [ 0 ] + "," + capture . Coordinate [ 1 ] + "," + capture . Altitude + "," + capture . Overlap + "," + capture . Completed + ";" ) ;
57+ }
58+ }
59+
4460 private void saveAsToolStripMenuItem_Click ( object sender , EventArgs e )
4561 {
4662 SaveFileDialog saveDialog = new SaveFileDialog ( ) ;
@@ -50,21 +66,18 @@ private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
5066 {
5167 if ( saveDialog . FileName != "" )
5268 {
53- using ( StreamWriter writer = new StreamWriter ( saveDialog . FileName ) )
54- {
55- writer . WriteLine ( "CamAlt=" + camAltitude ) ;
56- writer . WriteLine ( "Overlap=" + numOverlap . Value ) ;
57- writer . WriteLine ( "AlignCaptures=" + chbAlignCaptures . Checked ) ;
58- writer . WriteLine ( "Grid=" + grid ) ;
59- writer . Write ( "Captures=" ) ;
60-
61- foreach ( Capture capture in capturesList )
62- writer . Write ( capture . Coordinate [ 0 ] + "," + capture . Coordinate [ 1 ] + "," + capture . Altitude + "," + capture . Overlap + "," + capture . Completed + ";" ) ;
63- }
69+ filename = saveDialog . FileName ;
70+ saveToolStripMenuItem . Enabled = true ;
71+ SaveFile ( saveDialog . FileName ) ;
6472 }
6573 }
6674 }
6775
76+ private void saveToolStripMenuItem_Click ( object sender , EventArgs e )
77+ {
78+ SaveFile ( filename ) ;
79+ }
80+
6881 private void openToolStripMenuItem_Click ( object sender , EventArgs e )
6982 {
7083 OpenFileDialog openDialog = new OpenFileDialog ( ) ;
@@ -74,6 +87,8 @@ private void openToolStripMenuItem_Click(object sender, EventArgs e)
7487 {
7588 if ( openDialog . FileName != "" )
7689 {
90+ filename = openDialog . FileName ;
91+ saveToolStripMenuItem . Enabled = true ;
7792 using ( StreamReader reader = new StreamReader ( openDialog . FileName ) )
7893 {
7994 while ( ! reader . EndOfStream )
@@ -100,6 +115,7 @@ private void openToolStripMenuItem_Click(object sender, EventArgs e)
100115 grid = data [ 1 ] ;
101116 break ;
102117 case "Captures" :
118+ ClearCaptures ( ) ;
103119 string [ ] captures = data [ 1 ] . Split ( ';' ) ;
104120 foreach ( string capture in captures )
105121 {
@@ -360,6 +376,11 @@ private void btnCalculate_Click(object sender, EventArgs e)
360376 {
361377 try
362378 {
379+ if ( camAltitude < 50 )
380+ {
381+ MessageBox . Show ( "Camera altitude too low" ) ;
382+ return ;
383+ }
363384 string startCoord = txtSelCoordUpper . Text ;
364385 string endCoord = txtSelCoordLower . Text ;
365386 if ( startCoord . Split ( ',' ) . Length > 2 || endCoord . Split ( ',' ) . Length > 2 )
@@ -405,6 +426,11 @@ private void gMapControl_MouseUp(object sender, MouseEventArgs e)
405426 }
406427
407428 private void clearToolStripMenuItem_Click ( object sender , EventArgs e )
429+ {
430+ ClearCaptures ( ) ;
431+ }
432+
433+ private void ClearCaptures ( )
408434 {
409435 capturesList . Clear ( ) ;
410436 captureOverlay . Clear ( ) ;
0 commit comments