\"; ?> Google WMS Google WMS text/xml\" xlink:type=\"simple\"/> image/pngimage/jpegimage/gif \" xlink:type=\"simple\"/> \" xlink:type=\"simple\"/> Google WMSGoogle WMSEPSG:4326EPSG:900913EPSG:3857EPSG:3785\" maxy=\"\" minx=\"-\" miny=\"-\"/> \" miny=\"-\" maxx=\"\" maxy=\"\" resx=\"-1.0\" resy=\"-1.0\"/> \" miny=\"-\" maxx=\"\" maxy=\"\" resx=\"-1.0\" resy=\"-1.0\"/> \" miny=\"-\" maxx=\"\" maxy=\"\" resx=\"-1.0\" resy=\"-1.0\"/> Transparent LabelsTransparent Labels SatelliteSatellite StreetsStreets googlemaxzoomfactor) $zoomfactor = googlemaxzoomfactor; if ($zoomfactor < 0) $zoomfactor = 0; $mapmeterspertile = googlemaxmapmeters * 2 / (1 << $zoomfactor); $tileminx = floor($googlemeterminx / $mapmeterspertile); $tileminy = floor($googlemeterminy / $mapmeterspertile); $tilemaxx = floor($googlemetermaxx / $mapmeterspertile); $tilemaxy = floor($googlemetermaxy / $mapmeterspertile); $tileim = imagecreatetruecolor (256 * ($tilemaxx - $tileminx + 1), 256 * ($tilemaxy - $tileminy + 1)); //Enables alpha transparency. if (request(\"LAYERS\") == \"Transparent Labels\" && request(\"FORMAT\") == \"image/png\") { $transparentcolor = imagecolorallocatealpha($tileim, 0, 0, 0, 127); imagefill($tileim, 0, 0, $transparentcolor); } //This should be done in parallel. for ($y = $tileminy; $y <= $tilemaxy; $y++) if ($y >= 0 && $y < (1 << $zoomfactor)) for ($x = $tileminx; $x <= $tilemaxx; $x++) if ($x >= 0 && $x < (1 << $zoomfactor)) { $gm = getgooglemaptile ($host.$servernumber.\".google.com\", $getprefix.\"x=\".$x.\"&y=\".$y.\"&z=\".$zoomfactor.\"&s=\".substr(\"Galileo\", 0, (($x * 3) + $y) % 8)); if ($gm != null) imagecopyresized ($tileim, $gm, ($x - $tileminx) * 256, ($y - $tileminy) * 256, 0, 0, 256, 256, 256, 256); $servernumber = $servernumber ^ 1; } $im = imagecreatetruecolor ($pixelwidth, $pixelheight); //Get pixels to trim from 4 sides to fit requested dimensions exactly. $pixeltrimminx = round(($googlemeterminx / $mapmeterspertile - $tileminx) * 256); $pixeltrimminy = round(($googlemeterminy / $mapmeterspertile - $tileminy) * 256); $pixeltrimmaxx = round(($tilemaxx + 1 - $googlemetermaxx / $mapmeterspertile) * 256); $pixeltrimmaxy = round(($tilemaxy + 1 - $googlemetermaxy / $mapmeterspertile) * 256); //Enables alpha transparency. if (request(\"LAYERS\") == \"Transparent Labels\" && request(\"FORMAT\") == \"image/png\") { imagesavealpha($im, true); $transparentcolor = imagecolorallocatealpha($im, 0, 0, 0, 127); imagefill($im, 0, 0, $transparentcolor); } //Correct pixel dimensions underflow. $sourcepixelwidth = imagesx($tileim) - $pixeltrimmaxx - $pixeltrimminx; if ($sourcepixelwidth <= 0) $sourcepixelwidth = 1; $sourcepixelheight = imagesy($tileim) - $pixeltrimmaxy - $pixeltrimminy; if ($sourcepixelheight <= 0) $sourcepixelheight = 1; //This does the trim and resize. imagecopyresized ($im, $tileim, 0, 0, $pixeltrimminx, $pixeltrimminy, imagesx($im), imagesy($im), $sourcepixelwidth, $sourcepixelheight); header(\"Content-Type: \".request(\"FORMAT\")); if (request(\"FORMAT\") == \"image/png\") imagepng($im); elseif (request(\"FORMAT\") == \"image/jpeg\") imagejpeg($im); elseif (request(\"FORMAT\") == \"image/gif\") imagegif($im); else //Default to png for now imagepng($im); imagedestroy($im); } ?>