$namelistl){#地域名を持つ座標の配列を取り出す $avex=0; $avey=0; $avec=0; foreach($namelistl as $eql=>$t){#座標の配列から座標(x,y)を取り出す list($x,$y)=explode(",",$eql);#座標(x,y)からxとyを取り出す list($xi,$yi)=xtoxi($x,$y); $avex+=$xi; $avey+=$yi; $avec++; if(!isset($namelistl[fxy($x-.1,$y)])){ imageline($im,$xi,$yi,$xi,$yi+DOTSIZE,$red); } if(!isset($namelistl[fxy($x+.1,$y)])){ imageline($im,$xi+DOTSIZE,$yi,$xi+DOTSIZE,$yi+DOTSIZE,$red); } if(!isset($namelistl[fxy($x,$y-.1)])){ imageline($im,$xi,$yi+DOTSIZE,$xi+DOTSIZE,$yi+DOTSIZE,$red); } if(!isset($namelistl[fxy($x,$y+.1)])){ imageline($im,$xi,$yi,$xi+DOTSIZE,$yi,$red); } } $xi=$avex/$avec; $yi=$avey/$avec; $text=mb_convert_encoding($name,"UTF-8", "SJIS"); imagettftext($im, 10, 0, $xi-(mb_strlen($name)*2), $yi+DOTSIZE, $blk, $font, $text); } header('Content-Type: image/png'); imagepng($im); imagedestroy($im); function xtoxi($x,$y){ $xi=round(($x-120)*DOTSIZE*10); $yi=round(YIMGSIZE-1-DOTSIZE-($y-20)*DOTSIZE*10); return array($xi,$yi); } function fxy($x,$y){ return sprintf("%01.1f",$x).",".sprintf("%01.1f",$y); }