From ea0a7027bb2a35c6dc04965a54eb5baba1d3a4f7 Mon Sep 17 00:00:00 2001
From: Jacques Grelet <jacques.grelet@ird.fr>
Date: Mon, 18 Jun 2018 13:24:20 +0000
Subject: [PATCH] add border for m_map

---
 tsg_util/plot_map.m        |  6 +++++-
 tsg_util/preferencesForm.m | 32 +++++++++++++++++++++++++++++++-
 tsg_util/tsg_preferences.m |  2 ++
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/tsg_util/plot_map.m b/tsg_util/plot_map.m
index 918c9c6..23ffbce 100644
--- a/tsg_util/plot_map.m
+++ b/tsg_util/plot_map.m
@@ -25,6 +25,10 @@ function plot_map(hTsgGUI, hPlotAxes)
 % -------------------------------
 tsg = getappdata( hTsgGUI, 'tsg_data');
 
+% Retrieve map border
+% --------------------
+border = str2double(tsg.preference.map_border_string(tsg.preference.map_border_value));
+
 % Get the Geographic limit of the TSG time series
 % -----------------------------------------------
 dateLim = get(hPlotAxes(1), 'Xlim');
@@ -75,7 +79,7 @@ if ~isempty( ind )
 
   % Use of Mercator projection
   % --------------------------
-  m_proj('Mercator','lat',[latMin latMax],'long',[lonMin lonMax]);
+  m_proj('Mercator','lat',[latMin-border latMax+border],'long',[lonMin-border lonMax+border]);
 
   switch tsg.preference.map_resolution
 
diff --git a/tsg_util/preferencesForm.m b/tsg_util/preferencesForm.m
index fa75cab..a75d00b 100644
--- a/tsg_util/preferencesForm.m
+++ b/tsg_util/preferencesForm.m
@@ -251,6 +251,34 @@ if bottom < .1
   left = left + inc_x;
 end
 
+% display map border
+% ------------------
+uicontrol(...
+  'Parent', hPreferencesFig, ...
+  'Units', 'normalized', ...
+  'Style', 'Text', 'Fontsize', tsg.fontSize-1, ...
+  'HorizontalAlignment', 'left', 'Position',[left, bottom, length, height], ...
+  'TooltipString', 'select map border in degrees', ...
+  'String', 'Map Border');
+
+% display map resolution uicontrol
+% --------------------------------
+uicontrol(...
+  'Parent', hPreferencesFig, ...
+  'Units', 'normalized', ...
+  'BackgroundColor', 'w', 'Style', 'popupmenu',   'Fontsize', tsg.fontSize-2, ...
+  'HorizontalAlignment', 'right', ...
+  'Position', [left + length, bottom, length, height], ...
+  'String', tsg.preference.map_border_string, ...
+  'Value', tsg.preference.map_border_value, ...
+  'Tag', 'PREFERENCES_MAP_BORDER');
+
+bottom = bottom - inc_y - height;
+if bottom < .1
+  bottom = 0.95;
+  left = left + inc_x;
+end
+
 % display QC Automatic Test TITLE
 % --------------------------------
 uicontrol(...
@@ -794,6 +822,8 @@ uiwait(hPreferencesFig);
       get(prefs.PREFERENCES_PLOT_CONNECTED_LINE, 'value');
     tsg.preference.map_resolution = ...
       get(prefs.PREFERENCES_MAP_RESOLUTION, 'value');
+    tsg.preference.map_border_value = ...
+      get(prefs.PREFERENCES_MAP_BORDER, 'value');    
     tsg.preference.positions_format_value = ...
       get(prefs.PREFERENCES_POSITIONS_FORMAT, 'value');
     % QC Tests
@@ -841,7 +871,7 @@ uiwait(hPreferencesFig);
 
     % flushes the event queue and updates the figure window
     % -----------------------------------------------------
-     drawnow;
+    drawnow;
     
     % refresh QC statistic panel
     % --------------------------
diff --git a/tsg_util/tsg_preferences.m b/tsg_util/tsg_preferences.m
index 3257d84..a8db667 100644
--- a/tsg_util/tsg_preferences.m
+++ b/tsg_util/tsg_preferences.m
@@ -149,6 +149,8 @@ return
     % Plot
     preference.map_resolution_string = {'low','medium','intermediate','high'};
     preference.map_resolution        = 1;
+    preference.map_border_string     = {'1','2','5','10','15'};
+    preference.map_border_value      = 4;
     preference.plot_connected_string = {'none', '-', '--', ':', '-.'};
     preference.plot_connected_value  = 1;  % 0, line not connected
     % QC test
-- 
GitLab