function weldOverview2PNG($url_overview, $url_extent, $filename) { if (!$url_overview || $url_overview == "") { $e = new mb_exception("weldOverview2PNG: no maprequests delivered"); } $url = $url_overview; $obj1 = new stripRequest($url); $width = $obj1->get("width"); $height = $obj1->get("height"); /* $e = new mb_exception("--------overview-----------------"); $e = new mb_exception("-----width ".$width." / height: ".$height."--------------------"); $e = new mb_exception("url_overview: ".$url_overview); $e = new mb_exception("url_extent: ".$url_extent); */ $image = imagecreatetruecolor($width, $height); $white = ImageColorAllocate($image, 255, 255, 255); ImageFilledRectangle($image, 0, 0, $width, $height, $white); //overview $obj = new stripRequest($url_overview); $xurl_overview = $obj->setPNG(); $xurl_overview = $obj->encodeGET(); $img = $this->loadpng($xurl_overview); if ($img != false) { imagecopy($image, $img, 0, 0, 0, 0, $width, $height); } else { $e = new mb_exception("weldMaps2PNG: unable to load image: " . $url_overview); } // rectangle - position of the map in the overview $objx = new stripRequest($url_extent); $ex_width = $objx->get("width"); $ex_height = $objx->get("height"); $extent = explode(",", $objx->get("BBOX")); $lowerleft = $this->makeRealWorld2mapPos($url_overview, round($extent[0]), round($extent[1])); $upperright = $this->makeRealWorld2mapPos($url_overview, $extent[2], $extent[3]); /* $e = new mb_exception("ex_width: " .$ex_width); $e = new mb_exception("ex_height: " . $ex_height); $e = new mb_exception("bbox:".$extent[0]."--".$extent[1]."--".$extent[2]."--------".$extent[3]); $e = new mb_exception("ll: " . $lowerleft[0]." / ".$lowerleft[1]); $e = new mb_exception("ur: " . $upperright[0]." / ".$upperright[1]); */ $lowerleft[0] = round($lowerleft[0]); $lowerleft[1] = round($lowerleft[1]); $upperright[0] = round($upperright[0]); $upperright[1] = round($upperright[1]); $red = ImageColorAllocate($image, 255, 0, 0); imageline($image, $lowerleft[0], $upperright[1], $upperright[0], $upperright[1], $red); imageline($image, $upperright[0], $upperright[1], $upperright[0], $lowerleft[1], $red); imageline($image, $upperright[0], $lowerleft[1], $lowerleft[0], $lowerleft[1], $red); imageline($image, $lowerleft[0], $lowerleft[1], $lowerleft[0], $upperright[1], $red); // black frame - size of the overview $black = ImageColorAllocate($image, 0, 0, 0); imageline($image, 0, 0, $width - 1, 0, $black); imageline($image, $width - 1, 0, $width - 1, $height - 1, $black); imageline($image, $width - 1, $height - 1, 0, $height - 1, $black); imageline($image, 0, $height - 1, 0, 0, $black); imagepng($image, $filename); imagedestroy($image); }
function weldMaps2PNG($urls, $filename, $encode = true) { if (!$urls || $urls == "") { $e = new mb_exception("weldMaps2PNG: no maprequests delivered"); } $url = explode("___", $urls); $obj1 = new stripRequest($url[0]); $width = $obj1->get("width"); $height = $obj1->get("height"); $image = imagecreatetruecolor($width, $height); $white = ImageColorAllocate($image, 255, 255, 255); ImageFilledRectangle($image, 0, 0, $width, $height, $white); for ($i = 0; $i < count($url); $i++) { $obj = new stripRequest($url[$i]); $url[$i] = $obj->setPNG(); $url[$i] = $obj->encodeGET($encode); $img = $this->loadpng($url[$i]); if ($img != false) { imagecopy($image, $img, 0, 0, 0, 0, $width, $height); @imagedestroy($img); } else { $e = new mb_exception("weldMaps2PNG: unable to load image: " . $url[$i]); } } imagepng($image, $filename); imagedestroy($image); }