/**
  * Merge WMS into this map
  * 
  * @return 
  */
 public function mergeWmsArray($wmsArray)
 {
     if (func_num_args() > 1 && is_array($wmsArray) && count($wmsArray) > 0) {
         $options = func_get_arg(1);
         if ($options["zoom"]) {
             $currentWms = $wmsArray[0];
             $bboxArray = array();
             for ($i = 0; $i < count($currentWms->objLayer[0]->layer_epsg); $i++) {
                 $bboxArray[] = Mapbender_bbox::createFromLayerEpsg($currentWms->objLayer[0]->layer_epsg[$i]);
             }
             $this->mergeExtent($bboxArray);
         }
         // visibility of WMS
         if (isset($options["visible"])) {
             if ($options["visible"]) {
                 // set all layers of WMS to visible
                 for ($i = 0; $i < count($wmsArray); $i++) {
                     $numLayers = count($wmsArray[$i]->objLayer);
                     // using option show is dependent to option visible = true
                     if ($options["show"] && is_numeric($options["show"])) {
                         // do not display if layer count is too big
                         if ($numLayers > intval($options["show"])) {
                             continue;
                         }
                     }
                     for ($j = 0; $j < $numLayers; $j++) {
                         $wmsArray[$i]->objLayer[$j]->gui_layer_visible = 1;
                     }
                 }
             } else {
                 // set all layers of WMS to visible
                 for ($i = 0; $i < count($wmsArray); $i++) {
                     $numLayers = count($wmsArray[$i]->objLayer);
                     for ($j = 0; $j < $numLayers; $j++) {
                         $wmsArray[$i]->objLayer[$j]->gui_layer_visible = 0;
                     }
                 }
             }
         }
         // querylayer
         if (isset($options["querylayer"])) {
             $val = $options["querylayer"] ? 1 : 0;
             // set all queryable layers of WMS to querylayer
             for ($i = 0; $i < count($wmsArray); $i++) {
                 $numLayers = count($wmsArray[$i]->objLayer);
                 for ($j = 0; $j < $numLayers; $j++) {
                     $currentLayer = $wmsArray[$i]->objLayer[$j];
                     if ($currentLayer->gui_layer_queryable) {
                         $currentLayer->gui_layer_querylayer = $val;
                     }
                 }
             }
         }
         if ($options["show"] && is_numeric($options["show"]) && !isset($options["visible"])) {
             $e = new mb_exception("show");
             // set all layers of WMS to visible
             for ($i = 0; $i < count($wmsArray); $i++) {
                 $numLayers = count($wmsArray[$i]->objLayer);
                 // do not display if layer count is too big
                 if ($numLayers > intval($options["show"])) {
                     continue;
                 }
                 for ($j = 0; $j < $numLayers; $j++) {
                     $wmsArray[$i]->objLayer[$j]->gui_layer_visible = 1;
                 }
             }
         }
     }
     $this->wmsArray = wms::merge(array_merge($this->wmsArray, $wmsArray));
 }