3a4,6 > global $baselayers_separator, $baselayer_options_separator; > $baselayers_separator = ';'; > $baselayer_options_separator = ','; 132c135,139 < $baselayers = explode(',', $attrs['baselayers']); --- > $google_src_set = FALSE; > $multimap_src_set = FALSE; > $ve_set = FALSE; > $yahoo_set = FALSE; > $baselayers = get_baselayers($attrs['baselayers']); 135c141,144 < switch ($baselayer) { --- > $baselayer_vendor = $baselayer['baselayer_vendor']; > //$variant = $baselayer['variant']; > //$baselayer_options = $baselayer['baselayer_options']; > switch ($baselayer_vendor) { 136a146 > if($google_src_set == FALSE) { 138a149,150 > $google_src_set = TRUE; > } 140a153 > if($multimap_src_set == FALSE) { 141a155,156 > $google_src_set = TRUE; > } 143a159 > if($ve_src_set == FALSE) { 144a161,162 > $google_src_set = TRUE; > } 146a165 > if($yahoo_src_set == FALSE) { 147a167,168 > $yahoo_src_set = TRUE; > } 285c306,309 < if (isset($map['extent'])) { --- > if (isset($map['restrictedextent'])) { > $map['maxextent'] = $map['restrictedextent']; > } > elseif (isset($map['extent'])) { 301c325,336 < if (isset($map['maxextent'])) { --- > if (isset($map['restrictedextent'])) { > $restrictedextent = explode(',', $map['restrictedextent']); > if (!$maxResolution) { > $maxResolution = max(($restrictedextent[2] - $restrictedextent[0])/$map['width'] > , ($restrictedextent[3] - $restrictedextent[1])/$map['height']); > } > > $js .= "var extent = new OpenLayers.Bounds({$map['restrictedextent']});\n"; > $js .= "map_options.restrictedExtent = extent;\n"; > $js .= "map_options.maxExtent = extent;\n"; > } > elseif (isset($map['maxextent'])) { 342,347c377,382 < $baselayers = explode(',', $map['baselayers']); < foreach ($baselayers as $baselayer_variant) { < $tmp = explode('-', $baselayer_variant); < $baselayer = $tmp[0]; < $variant = count($tmp) > 1 ? strtolower($tmp[1]) : 'default'; < switch ($baselayer) { --- > $baselayers = get_baselayers($map['baselayers']); > foreach ($baselayers as $baselayer) { > $baselayer_vendor = $baselayer['baselayer_vendor']; > $variant = $baselayer['variant']; > $baselayer_options = $baselayer['baselayer_options']; > switch ($baselayer_vendor) { 351c386 < $variants = array('default' => 'G_HYBRID_MAP', 'streets' => 'G_HYBRID_MAP', 'satellite' => 'G_SATELLITE_MAP', 'hybrid' => 'G_HYBRID_MAP'); --- > $variants = array('default' => 'G_HYBRID_MAP', 'streets' => 'G_NORMAL_MAP', 'satellite' => 'G_SATELLITE_MAP', 'hybrid' => 'G_HYBRID_MAP', 'physical' => 'G_PHYSICAL_MAP'); 354c389,408 < $js .= " client.google = new OpenLayers.Layer.Google('Google - $variant', {type: $type, 'sphericalMercator': $sphericalMercator, 'numZoomLevels': 20, opacity: 0.8});\n"; --- > $js .= " var layer_options = {};\n"; > $js .= "layer_options.type = {$type};\n"; > $js .= "layer_options.sphericalMercator = {$sphericalMercator};\n"; > foreach($baselayer_options as $option => $value) { > switch($option) { > case 'opacity': > $js .= "layer_options.opacity = $value;\n"; > break; > case 'minzoomlevel': > $js .= "layer_options.MIN_ZOOM_LEVEL = $value;\n"; > break; > case 'numzoomlevels': > $js .= "layer_options.numZoomLevels = $value;\n"; > break; > default: > $js .= "layer_options.$option = $value;\n"; > break; > } > } > $js .= " client.google = new OpenLayers.Layer.Google('Google - $variant', layer_options);\n"; 363c417,436 < $js .= " client.ve = new OpenLayers.Layer.VirtualEarth('Virtual Earth - $variant', {'type': VEMapStyle.$type, 'sphericalMercator': $sphericalMercator, 'numZoomLevels': 20, opacity: 0.8});\n"; --- > $js .= " var layer_options = {};\n"; > $js .= "layer_options.type = VEMapStyle.$type;\n"; > $js .= "layer_options.sphericalMercator = {$sphericalMercator};\n"; > foreach($baselayer_options as $option => $value) { > switch($option) { > case 'opacity': > $js .= "layer_options.opacity = $value;\n"; > break; > case 'minzoomlevel': > $js .= "layer_options.MIN_ZOOM_LEVEL = $value;\n"; > break; > case 'numzoomlevels': > $js .= "layer_options.numZoomLevels = $value;\n"; > break; > default: > $js .= "layer_options.$option = $value;\n"; > break; > } > } > $js .= " client.ve = new OpenLayers.Layer.VirtualEarth('Virtual Earth - $variant', layer_options);\n"; 372c445,464 < $js .= " client.yahoo = new OpenLayers.Layer.Yahoo('Yahoo - $variant', {'type': $type, 'sphericalMercator': $sphericalMercator});\n"; --- > $js .= " var layer_options = {};\n"; > $js .= "layer_options.type = {$type};\n"; > $js .= "layer_options.sphericalMercator = {$sphericalMercator};\n"; > foreach($baselayer_options as $option => $value) { > switch($option) { > case 'opacity': > $js .= "layer_options.opacity = $value;\n"; > break; > case 'minzoomlevel': > $js .= "layer_options.MIN_ZOOM_LEVEL = $value;\n"; > break; > case 'numzoomlevels': > $js .= "layer_options.numZoomLevels = $value;\n"; > break; > default: > $js .= "layer_options.$option = $value;\n"; > break; > } > } > $js .= " client.yahoo = new OpenLayers.Layer.Yahoo('Yahoo - $variant', layer_options);\n"; 792a885,912 > function get_baselayers($baselayers_str) { > $baselayers = array(); > global $baselayers_separator, $baselayer_options_separator; > $baselayers_arr = explode($baselayers_separator, $baselayers_str); > $i = 0; > foreach($baselayers_arr as $baselayer_info) { > $tmp = explode($baselayer_options_separator, $baselayer_info); > $baselayer_variant = $tmp[0]; > $baselayer_options = (count($tmp) > 1) ? array_splice($tmp, 1) : array(); > $tmp = explode('-', $baselayer_variant); > $baselayer_vendor = $tmp[0]; > $variant = (count($tmp) > 1) ? strtolower($tmp[1]) : 'default'; > $baselayers[$i]['baselayer_vendor'] = $baselayer_vendor; > $baselayers[$i]['variant'] = $variant; > $baselayers[$i]['baselayer_options'] = get_baselayer_options($baselayer_options); > $i++; > } > return $baselayers; > } > > function get_baselayer_options($options) { > $baselayer_options = array(); > foreach($options as $option) { > $tmp = explode('=', $option); > $baselayer_options[$tmp[0]] = $tmp[1]; > } > return $baselayer_options; > } \ No newline at end of file