Project

General

Profile

« Previous | Next » 

Revision cc3c9807

Added by Andreas Kohlbecker over 10 years ago

refactoring map settings and rendering

View differences:

7.x/modules/cdm_dataportal/includes/maps.inc
44 44
 * @return array
45 45
 *    A drupal render array
46 46
 *
47
 * Similar compose function compose_distribution_map()
48
 *
47 49
 * @ingroup compose
48 50
 */
49 51
function compose_map($occurrence_query, $distribution_query, $legend_format_query, array $event_listeners = array()) {
50 52

  
51
  if (variable_get('cdm_dataportal_map_openlayers', 1)) {
53
  $map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT);
54
  if ($map_settings['map_type'] == 1) {
52 55
    $map_html = get_openlayers_map(
53
        variable_get('cdm_dataportal_geoservice_display_width', 680),
54
        variable_get('cdm_dataportal_geoservice_bounding_box', FALSE),
56
        $map_settings['width'],
57
        $map_settings['height'],
58
        $map_settings['bbox'],
55 59
        $occurrence_query,
56 60
        $distribution_query,
57 61
        $legend_format_query,
58
        variable_get('cdm_dataportal_geoservice_map_caption', ''),
62
        $map_settings['caption'],
59 63
        $event_listeners
60 64
    );
61 65
  }
62 66
  else {
63 67
    $map_html = get_image_map(
64
        variable_get('cdm_dataportal_geoservice_display_width', 680),
65
        variable_get('cdm_dataportal_geoservice_bounding_box', FALSE),
68
        $map_settings['width'],
69
        $map_settings['height'],
70
        $map_settings['bbox'],
66 71
        $occurrence_query,
67 72
        $distribution_query,
68 73
        $legend_format_query,
69
        variable_get('cdm_dataportal_geoservice_map_caption', '')
74
        $map_settings['caption']
70 75
    );
71 76
  }
72 77
  return markup_to_render_array($map_html, 0);
......
91 96

  
92 97
  _add_js_openlayers();
93 98

  
99
  $map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT);
100
  $baseLayers = $map_settings['openlayers']['base_layers'];
101
  $gmap_api_key = variable_get('gmap_api_key', 'ABQIAAAAFho6eHAcUOTHLmH9IYHAeBRi_j0U6kJrkFvY4-OX2XYmEAa76BTsyMmEq-tn6nFNtD2UdEGvfhvoCQ');
102

  
94 103
  drupal_add_js(drupal_get_path('module', 'cdm_dataportal') . '/js/map/openlayers_map.js');
95 104
  drupal_add_js(drupal_get_path('module', 'cdm_dataportal') . '/js/map/openlayers_layers.js');
96 105

  
97
  $gmap_api_key = variable_get('gmap_api_key', 'ABQIAAAAFho6eHAcUOTHLmH9IYHAeBRi_j0U6kJrkFvY4-OX2XYmEAa76BTsyMmEq-tn6nFNtD2UdEGvfhvoCQ');
98 106

  
99
  $baseLayers = variable_get('baselayers', array());
100 107
  if (!is_array($baseLayers) || count($baseLayers) == 0) {
101 108
    $baseLayers = array(
102 109
        'metacarta_vmap0' => 'Metacarta Vmap0',
......
142 149
                   '" . $edit_map_service['version'] . "',
143 150
                   {
144 151
                    legendPosition: 3,
145
                    boundingBox: '" . variable_get('cdm_dataportal_geoservice_bounding_box', FALSE) . "',
146
                    distributionOpacity: '" . variable_get('cdm_dataportal_geoservice_distributionOpacity', '0.5') . "',
147
                    legendOpacity: '" . variable_get('cdm_dataportal_geoservice_legendOpacity', '0.5') . "',
148
                    showLayerSwitcher: " . (variable_get('cdm_dataportal_geoservice_showLayerSwitcher', TRUE) ? 'true' : 'false') . ",
152
                    boundingBox: '" . $map_settings['bbox'] . "',
153
                    distributionOpacity: '" . $map_settings['distribution_opacity'] . "',
154
                    legendOpacity: '" . $map_settings['legend']['opacity'] . "',
155
                    showLayerSwitcher: " . ($map_settings['openlayers']['show_layer_switcher'] ? 'true' : 'false') . ",
149 156
                    baseLayerNames: [" . $layerNames . "],
150 157
                    defaultBaseLayerName: '" . $preferredLayer . "'
151 158
                   }
......
186 193
 * @return String
187 194
 *    rendered html
188 195
 */
189
function get_openlayers_map($width, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE, array $event_listeners = array()) {
196
function get_openlayers_map($width, $height, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE, array $event_listeners = array()) {
190 197

  
191 198
  _add_js_openlayers_map($event_listeners);
192 199

  
200
  $map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT);
201

  
193 202
  $out = '<div id="openlayers">';
194 203
  $out .= '<div id="openlayers_map" class="smallmap"';
195 204
  if($width) {
196
    $out .= ' style="width: ' . $width . 'px; height:' . ($width / 2) . 'px"';
205
    if(!$height){
206
      $height = $width / 2;
207
    }
208
    $out .= ' style="width: ' . $width . 'px; height:' . $height . 'px"';
197 209
  }
198 210

  
199 211
  // Additional query parameters as set in the data portal admin section.
200
  $labels_on = variable_get('cdm_dataportal_geoservice_labels_on', 0);
212
  $labels_on = $map_settings['show_labels'];
201 213

  
202 214
  $openlayers_map_query_string = '&img=false&ms=' . $width
203 215
  . ($bounding_box ? '&bbox=' . $bounding_box : '')
......
248 260
* @return String
249 261
 *    rendered html
250 262
 */
251
function get_image_map($width, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE) {
263
function get_image_map($width, $height= NULL, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE) {
252 264

  
253
  // Additional query parameters as set in the data portal admin section.
254
  $labels_on = variable_get('cdm_dataportal_geoservice_labels_on', 0);
265
  $map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT);
255 266

  
256
  $query_string = '&image=true&recalculate=false&legend=1&ms=' . $width
267
  $query_string = '&image=true&recalculate=false&legend=1&ms=' . $width . ($height ? ',' . $height : '')
268
  // Additional query parameters as set in the data portal admin section.
257 269
  . ($bounding_box ? '&bbox=' . $bounding_box : '')
258
  . ($labels_on ? '&label=' . $labels_on : '');
270
  . ($map_settings['show_labels'] ? '&label=' . $map_settings['show_labels'] : '');
259 271

  
260 272
  if ($map_caption) {
261 273
    $query_string .= '&mlp=3&mc_s=Georgia,15,blue&mc=' . $map_caption;
......
300 312
    $additional_area_styles = array();
301 313

  
302 314
    // Background color:
303
    if (variable_get('map_bg_color', '')) {
315
    if ($map_settings['image_map']['bg_color'] ) {
304 316
      $bgcolor_layer = "background_gis:" . $bgcolor_areaStyleId;
305
      $additional_area_styles[] = $bgcolor_areaStyleId . ":" . variable_get('map_bg_color', '') . ",,";
317
      $additional_area_styles[] = $bgcolor_areaStyleId . ":" . $map_settings['image_map']['bg_color'] . ",,";
306 318
    }
307 319

  
308 320
    // TODO HACK to replace the default base layer which currently is tdwg4 !!!
......
319 331
    else {
320 332
      $areystyle_param_token = "&as=";
321 333
    }
322
    if (variable_get('map_base_layer', '')) {
323
      $query_string = str_replace($layer_param_token . "tdwg4", "$layer_param_token" . variable_get('map_base_layer', '') . ":" . $baselayer_areaStyleId, $query_string);
334
    if ($map_settings['image_map']['base_layer']) {
335
      $query_string = str_replace($layer_param_token . "tdwg4", "$layer_param_token" . $map_settings['image_map']['base_layer'] . ":" . $baselayer_areaStyleId, $query_string);
324 336
    }
325 337
    else {
326 338
      $query_string = str_replace($layer_param_token . "tdwg4", $layer_param_token . "tdwg4:" . $baselayer_areaStyleId . ",", $query_string);
......
330 342
      $query_string = str_replace($layer_param_token, $layer_param_token . $bgcolor_layer . ",", $query_string);
331 343
    }
332 344

  
333
    if (variable_get('map_base_layer_style', '')) {
334
      $additional_area_styles[] = $baselayer_areaStyleId . ":" . variable_get('map_base_layer_style', '');
345
    if ($map_settings['image_map']['layer_style']) {
346
      $additional_area_styles[] = $baselayer_areaStyleId . ":" . $map_settings['image_map']['layer_style'];
335 347
    }
336 348

  
337 349
    foreach ($additional_area_styles as $as) {

Also available in: Unified diff