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 loadpng ($imgurl) { $obj = new stripRequest($imgurl); $x = new connector($imgurl); $f = $obj->get("format"); $im = @imagecreatefromstring($x->file); if(!$im){ $im = false; $e = new mb_exception("weldOverview2PNG: unable to load image: ".$imgurl); } return $im; } function makeRealWorld2mapPos($url, $rw_posx, $rw_posy){ $obj = new stripRequest($url); $width = $obj->get("width"); $height = $obj->get("height"); #$e = new mb_exception("weld_url: ".$url); #$e = new mb_exception("w: ".$width."height".$height); $arrayBBox = explode(",",$obj->get("BBOX")); $minX = $arrayBBox[0]; $minY = $arrayBBox[1]; $maxX = $arrayBBox[2]; $maxY = $arrayBBox[3]; #$e = new mb_exception("------- minx: ".$minX." miny:".$minY." maxx:".$maxX." maxy:".$maxY."----------"); $xtentx = $maxX - $minX ; $xtenty = $maxY - $minY ; $pixPos_x = (($rw_posx - $minX)/$xtentx)*$width; $pixPos_y = (($maxY - $rw_posy)/$xtenty)*$height; $pixPos = array($pixPos_x, $pixPos_y); return $pixPos; } } ?>