Project

General

Profile

« Previous | Next » 

Revision cb961f9d

Added by Andreas Kohlbecker almost 7 years ago

fix #6573 wms overlay layer and some bugfixes:

  • bug: base layers added multiple times - fixed
  • problems in settings documentation solved

View differences:

modules/cdm_dataportal/includes/maps.inc
149 149
  // --- setting the base layer options
150 150
  if (is_array($map_settings['openlayers']['base_layers']) && count($map_settings['openlayers']['base_layers']) > 0) {
151 151

  
152
    $layer_names = $map_settings['openlayers']['base_layers'];
152
    $base_layer_names = $map_settings['openlayers']['base_layers'];
153 153

  
154
    foreach($layer_names as $name){
154
    foreach($base_layer_names as $name){
155 155
      if(str_beginsWith($name, 'g')){
156 156
        if( isset($map_settings['openlayers']['google_maps_api_key']) && strlen($map_settings['openlayers']['google_maps_api_key']) == 39) {
157 157
          // google layer detected
......
163 163
      }
164 164
    }
165 165

  
166
    $cdm_openlayers_options['baseLayerNames'] = array_values($layer_names);
166
    // get default layer and remove the 'PREFERRED' from the list to avoid duplicate layers
167
    $preferred_baseLayer = $base_layer_names['PREFERRED'];
168
    unset($base_layer_names['PREFERRED']);
167 169

  
168
    if($layer_names['PREFERRED']){
169
      $cdm_openlayers_options['defaultBaseLayerName'] = $layer_names['PREFERRED'];
170
      unset($layer_names['PREFERRED']); // why is this needed?
171
      if(!array_search($cdm_openlayers_options['defaultBaseLayerName'], $cdm_openlayers_options['baseLayerNames'])){
170
    $cdm_openlayers_options['baseLayerNames'] = array_values($base_layer_names);
171

  
172
    if($preferred_baseLayer){
173
      $cdm_openlayers_options['defaultBaseLayerName'] = $preferred_baseLayer;
174
      if(array_search($preferred_baseLayer, $cdm_openlayers_options['baseLayerNames']) === false){
172 175
        // the default layer must also  be in the list of base layers
173
        $cdm_openlayers_options['baseLayerNames'][] = $cdm_openlayers_options['defaultBaseLayerName'];
176
        $cdm_openlayers_options['baseLayerNames'][] = $preferred_baseLayer;
174 177
      }
175 178
    }
176 179

  
......
180 183
  $map_settings['openlayers']['custom_wms_base_layer']['params'] = json_decode($map_settings['openlayers']['custom_wms_base_layer']['params']);
181 184
  $cdm_openlayers_options['customWMSBaseLayerData'] = $map_settings['openlayers']['custom_wms_base_layer'];
182 185

  
186

  
187
  // --- wms_overlay_layer
188
  if($map_settings['openlayers']['wms_overlay_layer']['is_enabled']) {
189
    $map_settings['openlayers']['wms_overlay_layer']['params'] = json_decode($map_settings['openlayers']['wms_overlay_layer']['params']);
190
    $cdm_openlayers_options['wmsOverlayLayerData'] = $map_settings['openlayers']['wms_overlay_layer'];
191
  }
192

  
183 193
  // --- eventhandlers
184 194
  $event_listeners_js = '';
185 195
  $execute_handler = '';

Also available in: Unified diff