--- /dev/null
+<?php\r
+require_once("../path_index.php");
+\r
+//header("Content-Type: text/xml"); \r
+$random=md5($_SERVER["REQUEST_URI"] ).".sld";\r
+$leg=$_GET['legend'];\r
+//$random2=DIR_PLATFORM."/synthesys/www/v1/cr_img/".(rand()%300).".png"; \r
+$random2=DIR_PLATFORM."/synthesys/www/v1/img/".md5($_SERVER["REQUEST_URI"] ).".png";\r
+\r
+$sld_dir = DIR_PLATFORM."/synthesys/www/v1/sld"; \r
+$img_dir = DIR_PLATFORM."/synthesys/www/v1/img";\r
+
+$d = dir($sld_dir);\r
+$e = dir($img_dir);\r
+\r
+\r
+$ad=$_GET['ad'];\r
+$ad=explode('||',$ad);\r
+\r
+\r
+$layers=$_GET['l'];\r
+\r
+if (ereg(",",$layers))\r
+{\r
+ \r
+ $layers=explode(",",$layers);\r
+ $ls=array();\r
+ $ls_styles=array();\r
+ foreach ($layers as $k=>$v)\r
+ {\r
+ switch ($v)\r
+ { \r
+ case ('earth'): \r
+ $v="country_earth";\r
+ \r
+ $ls[]=$v;\r
+ break;\r
+ case ('tdwg1'): \r
+ $v="topp:tdwg_level_1";\r
+ $ls[]=$v;\r
+ \r
+ // array_push($ls,$v);\r
+ break;\r
+ case ('tdwg2'): \r
+ $v="topp:tdwg_level_2";\r
+ $ls[]=$v;\r
+ \r
+// array_push($ls,$v);\r
+ break;\r
+ case ('tdwg3'): \r
+ $v="topp:tdwg_level_3";\r
+ $ls[]=$v;\r
+ break;\r
+ case ('tdwg4'): \r
+ $v="topp:tdwg_level_4";\r
+ $ls[]=$v;\r
+ break;\r
+ }\r
+\r
+//ƒ $v;\r
+ }\r
+\r
+$styles_string="";\r
+\r
+foreach ($ls as $k=>$v)\r
+{\r
+\r
+ $ls_string.=$v.",";\r
+ $styles_string.="line,";\r
+ }\r
+ $ls_string=substr($ls_string,0,-1);\r
+ $styles_string=substr($styles_string,0,-1);\r
+ // $styles_string.=$ls[count($ls)-1];\r
+ \r
+}\r
+else\r
+{\r
+ switch ($layers)\r
+ {\r
+\r
+ case ('earth'): \r
+ $ls_string="topp:country_earth";\r
+ break;\r
+ case ('e_prov'): \r
+ $ls_string="topp:province_europe"; \r
+ break;\r
+ case ('tdwg1'): \r
+ $ls_string="topp:tdwg_level_1";\r
+ break;\r
+ case ('tdwg2'): \r
+ $ls_string="topp:tdwg_level_2";\r
+ break;\r
+ case ('tdwg3'): \r
+ $ls_string="topp:tdwg_level_3";\r
+ break;\r
+ case ('tdwg4'): \r
+ $ls_string="topp:tdwg_level_4";\r
+ break;\r
+ \r
+ }\r
+\r
+\r
+ $styles_string="line";\r
+\r
+}\r
+\r
+\r
+foreach ($ad as $k=>$v)\r
+{\r
+//tdwg3:a:PHI,SPA|b:ITA\r
+//var_dump($v);\r
+\r
+//$ad2=explode('|',$v);\r
+\r
+\r
+if ($_GET['title'])\r
+{\r
+$title=$_GET['title'];\r
+}\r
+//title=a:cultivated|b:forest\r
+$t=explode('|',$title);\r
+$title_array=array();\r
+\r
+foreach ($t as $k=>$v)\r
+{\r
+$title=explode(':',$v);\r
+$title_array[$title[0]]=$title[1];\r
+}\r
+\r
+if ($_GET['label'])\r
+{\r
+$label=$_GET['label'];\r
+}\r
+//$images=a,b:orange,green\r
+if ($_GET['images_url'])\r
+{\r
+$images_url=$_GET['images_url'];\r
+//$images_url="a,b:edit.csic.es/fitxers/hatch_images|c:edit.csic.es/fitxers/hatch_images";\r
+$images_url=explode('|',$images_url);\r
+\r
+}\r
+\r
+\r
+$symbols=$_GET['symbols'];\r
+//$symbols="a,b:hatch_orange.gif|c:hatch_green.gif";\r
+$symbols=explode('|',$symbols);\r
+$symbols_url=array();\r
+foreach ($symbols as $k=>$v)\r
+{\r
+ $symbols=explode(':',$v);\r
+ $keys=explode(',',$symbols[0]);\r
+ $get_v=explode(',',$symbols[1]);\r
+// var_dump ($get_v);\r
+ if ($_GET['images_url'])\r
+{\r
+ foreach ($keys as $k=>$v)\r
+ {\r
+\r
+ $symbols_url[$v]['symbols']=$get_v[0];\r
+ $symbols_url[$v]['size']=$get_v[1]; \r
+ $symbols_url[$v]['format']=$get_v[2]; \r
+ } \r
+ }\r
+}\r
+if ($_GET['images_url'])\r
+{\r
+foreach ($images_url as $k=>$v)\r
+{\r
+$images=explode(':',$v);\r
+//echo $images[0];\r
+$keys=explode(',',$images[0]);\r
+//var_dump($keys);\r
+foreach ($keys as $k=>$v)\r
+{\r
+$symbols_url[$v]['url']=$images[1]; \r
+}\r
+}\r
+}\r
+\r
+\r
+//$ad="tdwg2/d:Mexico,Caribbean||tdwg4/b:Chiapas,Oaxaca,Veracruz||tdwg3/a:MXC|b:MXE,MXG|c:MXS,MXT";\r
+\r
+$color=$_GET['as'];\r
+\r
+ $ms=$_GET['ms'];\r
+ if (ereg(",",$ms))\r
+ {\r
+ $ms=explode(',',$ms);\r
+ $width=$ms[0];\r
+ $height=$ms[1];\r
+ }\r
+ else \r
+ {\r
+ $width=$ms; \r
+ $height=$width/2;\r
+\r
+\r
+ };\r
+ \r
+\r
+//var_dump($ls_string);\r
+\r
+$col=explode('|',$color);\r
+//no dóna error al haver-n'hi només un!\r
+$total_symbols=array();\r
+//$color="a:d7add2,AOOOOOF,2,dotted,cultivated|b:ab8dc9F";\r
+foreach ($col as $color)\r
+{\r
+\r
+ $color=explode(':',$color);\r
+ $symbols_key=$color[0];\r
+ $symbols_val=$color[1];\r
+ if (!ereg(",",$symbols_val))\r
+ {\r
+ //only fill area; others are default\r
+ $total_symbols[$symbols_key][]=$symbols_val; \r
+ } \r
+ else \r
+ {\r
+ $s=explode(',',$symbols_val);\r
+ foreach ($s as $k=>$v)\r
+ {\r
+ $total_symbols[$symbols_key][]=$v; \r
+ }\r
+ }\r
+// $total_symbols[$symbols_key]=$col_val;\r
+}\r
+//var_dump($total_symbols);\r
+//'a'-->array 'blue'\r
+foreach ($total_symbols as $k=>$v)\r
+{\r
+ \r
+//foreach ($total_symbols as $k2=>$v2)\r
+//echo $total_symbols[$k][0]."<br>";\r
+ //var_dump($total_symbols[$k]);\r
+//$color="a:d7add2,AOOOOOF,2,dotted|b:ab8dc9F"; \r
+\r
+ for ($i=0;$i<5;$i++)\r
+ {\r
+ //echo $total_symbols[$k][$i]."<br>";\r
+ switch ($i)\r
+ {\r
+ case 0:\r
+\r
+// if (array_key_exists($i,$total_symbols[$k])){ \r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="c5bec0";\r
+ }\r
+//}\r
+\r
+ case 1:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="10090b"; \r
+ }\r
+ case 2:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="0.5"; \r
+ }\r
+ /* case 3:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]=""; \r
+ }*/\r
+ /* case 4:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="no_style";\r
+ }*/\r
+ case 3:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="no_style";\r
+ }\r
+ case 4:\r
+ if($total_symbols[$k][$i]=="")\r
+ {\r
+ $total_symbols[$k][$i]="no_label";\r
+ }\r
+ }//fi switch\r
+ } //fi for\r
+ if (array_key_exists($k,$symbols_url))\r
+ {\r
+ $total_symbols[$k]['5']=$symbols_url[$k]['url'];\r
+ $total_symbols[$k]['6']=$symbols_url[$k]['symbols'];\r
+ $total_symbols[$k]['7']=$symbols_url[$k]['size'];\r
+ $total_symbols[$k]['8']=$symbols_url[$k]['format'];\r
+\r
+ }\r
+ \r
+}//fir for each\r
+//var_dump($total_symbols);\r
+\r
+$tdwg=array();\r
+foreach ($ad as $k=>$v)\r
+{\r
+$v=explode('|',$v);\r
+\r
+foreach ($v as $k=>$v)\r
+{\r
+if ($k==0)\r
+{\r
+ \r
+ $first_data=explode(':',$v);\r
+ $first_layer=$first_data[0];\r
+ $first_style=$first_data[1];\r
+ $first_pol=$first_data[2];\r
+\r
+//var_dump($v);\r
+ if (!ereg(",",$first_pol))\r
+ {\r
+ \r
+ $tdwg[$first_layer][$first_style]['zones']=$first_pol;\r
+ \r
+// var_dump($tdwg[$first_layer][$first_style]['zones']);-->NCS\r
+ \r
+ }\r
+ else\r
+ {\r
+ //tdwg4:c:Nicaragua,Chiapas,Oaxaca,Veracruz\r
+ $l3=explode(',',$first_pol);\r
+ foreach($l3 as $value)\r
+ {\r
+\r
+ $tdwg[$first_layer][$first_style]['zones'][]=$value;\r
+ //echo $value."<br>";\r
+ }\r
+ }\r
+// var_dump($first_pol); \r
+} \r
+else //not the first data \r
+ { \r
+\r
+ //b:Mexico\r
+ //si no trobem cap comma, (ex: b:IRQ )d:NA o c:NA|b:PI\r
+ // a cada estil l'hi correspon només un país \r
+// var_dump($v);\r
+ $data=explode(':',$v);\r
+ \r
+\r
+ if (!ereg(",",$data[1]))\r
+ {\r
+\r
+ $tdwg[$first_layer][$data[0]]['zones']=$data[1];\r
+ // var_dump($tdwg[$first_layer]);\r
+//var_dump($data[1]);\r
+ //$styles[$key]['zones'];\r
+ // echo $val;\r
+ }\r
+ else\r
+ {\r
+ //c:Nicaragua,Chiapas,Oaxaca,Veracruz\r
+ $l3=explode(',',$data[1]);\r
+ foreach($l3 as $value)\r
+ {\r
+ $tdwg[$first_layer][$data[0]]['zones'][]=$value;\r
+ //echo $value."<br>";\r
+ }\r
+ }\r
+\r
+}\r
+\r
+\r
+} \r
+\r
+}\r
+\r
+}\r
+\r
+//var_dump($tdwg);\r
+$tdwg3_val=array();\r
+$tdwg3_total=array();\r
+\r
+$legend="<gml>";\r
+foreach ($total_symbols as $k=>$v)\r
+{\r
+//var_dump($k); //a,b\r
+$legend.="<style><name>".$title_array[$k]."</name>";\r
+//$legend.="<style><name>".$total_symbols[$k][4]."</name>";\r
+\r
+$legend.="<label>".$k."</label>";\r
+\r
+if (array_key_exists($k['url'],$symbols_url))\r
+{\r
+\r
+ \r
+$legend.="<hatching>http://".$symbols_url[$k]['url']."/".$symbols_url[$k]['symbols'].".".$symbols_url[$k]['format']."</hatching>";\r
+switch ($symbols_url[$k]['format'])\r
+{\r
+ case ('gif'): $format='image/gif';break;\r
+ case ('png'): $format='image/png';break;\r
+ case ('jpeg'): $format='image/jpeg';break;\r
+}\r
+\r
+$legend.="<symbol_size>".$symbols_url[$k]['size']."</symbol_size>";\r
+$legend.="<symbol_format>".$format."</symbol_format>";\r
+//$xml.="<hatch_symbol>".."</hatch_symbol>";\r
+$legend.="<color>hatching</color>";\r
+}\r
+else { \r
+$legend.="<hatching>NO</hatching>";\r
+$legend.="<color>".$total_symbols[$k][0]."</color>";\r
+}\r
+\r
+\r
+$legend.="<stroke_color>".$total_symbols[$k][1]."</stroke_color>";\r
+$legend.="<stroke_width>".$total_symbols[$k][2]."</stroke_width>";\r
+switch ($total_symbols[$k][3])\r
+{\r
+ case ('1_2'): $total_symbols[$k][3]="1 2 1 2";break;\r
+ case ('1_4'): $total_symbols[$k][3]="1 4 1 4";break;\r
+ case ('2_2'): $total_symbols[$k][3]="2 2 2 2";break;\r
+ case ('2_4'): $total_symbols[$k][3]="2 4 2 4";break;\r
+ case ('5_7'): $total_symbols[$k][3]="5 7 5 7";break;\r
+ case ('10_5'): $total_symbols[$k][3]="10 5 10 5";break;\r
+}\r
+$legend.="<stroke_style>".$total_symbols[$k][3]."</stroke_style>";\r
+$legend.="</style>";\r
+}\r
+$legend.="</gml>";\r
+$legend_xml[]=$legend;\r
+//var_dump($legend_xml);\r
+//echo $legend;\r
+ $p=simplexml_load_string($legend_xml[0]);\r
+$hatching=$p->style->hatching;\r
+$xsl = new XSLTProcessor;\r
+$xsl->setParameter( '', 'symbol', $hatching);\r
+$xsl->setParameter( '', 'layer', $layer);\r
+$xsl->setParameter( '', 'field', $field);\r
+$xsl->setParameter( '', 'label_field', $label_field);\r
+$style = realpath('areas_legend_no.xsl');\r
+$dom_new = new DOMDocument();\r
+$dom_new->load($style);\r
+$xsl->importStyleSheet($dom_new);\r
+$dom_new->loadXML($legend_xml[0]);\r
+$out = $xsl->transformToXML($dom_new);\r
+\r
+//$random = (rand()%300).".sld";\r
+//$leg_path_towrite=DIR_PLATFORM."/edit_wp5/fitxers/sld/$random";\r
+$leg_path_towrite=DIR_PLATFORM."/synthesys/www/v1/sld/$random";\r
+$fp=fopen("$leg_path_towrite","w");\r
+$write=fwrite($fp,$out);\r
+$leg_url=URL_SITE."/synthesys/www/v1/sld/$random";\r
+\r
+\r
+$legs=array();\r
+foreach ($tdwg as $k=>$v)\r
+{\r
+\r
+foreach ($tdwg[$k] as $k2=>$v2)\r
+{\r
+//echo $k; -->tdwg3\r
+//echo $k2; --->a\r
+$legs[$k2]=$k;\r
+//legs--->array(2) { ["b"]=> string(5) "tdwg1" ["a"]=> string(5) "tdwg3" } \r
+//LEGENDS!!!\r
+\r
+}\r
+\r
+\r
+$xml="<gml>";\r
+$xml.="<feature>".$k."</feature>";\r
+\r
+foreach ($v as $style=>$value)\r
+{\r
+\r
+$xml.="<style><name>".$style."</name>";\r
+$xml.="<label>".$label."</label>";\r
+\r
+if (array_key_exists($style,$symbols_url))\r
+{\r
+//var_dump($symbols_url[$style]);\r
+ \r
+$xml.="<hatching>http://".$symbols_url[$style]['url']."/".$symbols_url[$style]['symbols'].".".$symbols_url[$style]['format']."</hatching>";\r
+switch ($symbols_url[$style]['format'])\r
+{\r
+ case ('gif'): $format='image/gif';break;\r
+ case ('png'): $format='image/png';break;\r
+ case ('jpeg'): $format='image/jpeg';break;\r
+}\r
+\r
+$xml.="<symbol_size>".$symbols_url[$style]['size']."</symbol_size>";\r
+$xml.="<symbol_format>".$format."</symbol_format>";\r
+//$xml.="<hatch_symbol>".."</hatch_symbol>";\r
+$xml.="<color>hatching</color>";\r
+}\r
+else { \r
+$xml.="<hatching>NO</hatching>";\r
+$xml.="<color>".$total_symbols[$style][0]."</color>";\r
+}\r
+\r
+$xml.="<stroke_color>".$total_symbols[$style][1]."</stroke_color>";\r
+$xml.="<stroke_width>".$total_symbols[$style][2]."</stroke_width>";\r
+switch ($total_symbols[$style][3])\r
+{\r
+ case ('1_2'): $total_symbols[$style][3]="1 2 1 2";break;\r
+ case ('1_4'): $total_symbols[$style][3]="1 4 1 4";break;\r
+ case ('2_2'): $total_symbols[$style][3]="2 2 2 2";break;\r
+ case ('2_4'): $total_symbols[$style][3]="2 4 2 4";break;\r
+ case ('5_7'): $total_symbols[$style][3]="5 7 5 7";break;\r
+ case ('10_5'): $total_symbols[$style][3]="10 5 10 5";break;\r
+}\r
+$xml.="<stroke_style>".$total_symbols[$style][3]."</stroke_style>";\r
+\r
+foreach ($value as $key=>$country)\r
+{\r
+\r
+if(!is_array($country))\r
+{\r
+//$tdwg[$k][count]\r
+$xml.="<country>".$country."</country>";\r
+\r
+$xml.="</style>";\r
+}\r
+else \r
+{\r
+\r
+foreach ($tdwg[$k][$style]['zones'] as $zones)\r
+{\r
+$xml.="<country>".$zones."</country>";\r
+}\r
+$xml.="</style>";\r
+} //fi foreach country\r
+}\r
+}\r
+$xml.="</gml>";\r
+\r
+$gmls[$k]=$xml;\r
+}\r
+//var_dump($gmls[$k]);\r
+\r
+if ($_GET['bbox'])\r
+ {\r
+ $bbox=$_GET['bbox'];\r
+ }\r
+ else{\r
+ $conn = pg_connect(POSTGIS_CS);\r
+ if (pg_ErrorMessage($conn)) { \r
+ echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; \r
+ }\r
+ else\r
+ {\r
+ \r
+ \r
+ $BBOX_sql="select extent(the_geom) from tdwgs where "; \r
+ $c=0;\r
+ foreach ($tdwg as $k=>$v)\r
+ {\r
+\r
+\r
+ switch ($k)\r
+ {\r
+\r
+\r
+ case ('tdwg1'): $layer='topp:tdwg_level_1';$db_layer='tdwg_level_1';\r
+ $field='code';\r
+ //??????????????????????????????????????$label_field='zona';\r
+ \r
+ break;\r
+ case ('tdwg2'): $layer='topp:tdwg_level_2';$db_layer='tdwg_level_2';\r
+ $field='code';\r
+ $label_field='code';\r
+ break;\r
+ case ('tdwg3'): $layer='topp:tdwg_level_3'; $db_layer='tdwg_level_3';\r
+ $field='code';$layer_sh="TDWG 3";$label_field='code';\r
+ break;\r
+ case ('tdwg4'): $layer='topp:tdwg_level_4';$db_layer='tdwg_level_4';\r
+ $field="code";\r
+ $label_field='code';$layer_sh="TDWG 4";\r
+ break;\r
+ }\r
+\r
+\r
+ foreach($v as $key=>$val)\r
+ {\r
+// var_dump($val);\r
+ if ($c>0)\r
+ {\r
+ $BBOX_sql.="OR ";\r
+ }\r
+ if (count($val['zones'])==1)\r
+ {\r
+\r
+ $BBOX_sql.="code='".$val['zones']."' ";\r
+\r
+ }else\r
+ {\r
+ $count=count($val['zones']);\r
+ //$BBOX_sql.="select extent(the_geom) from tdwgs where code=";\r
+\r
+\r
+ for ($i=0;$i<($count-1);$i++)\r
+ {\r
+ \r
+ if ($i==0)\r
+ {\r
+ $BBOX_sql.="code='".$val['zones'][0]."'";\r
+ }\r
+ else\r
+ {\r
+ $BBOX_sql.=" OR code='".$val['zones'][$i]."'";\r
+ }\r
+ \r
+ }\r
+ // var_dump($tdwg2_total[1][2]);\r
+ //QUINA CUTRADA!!!!!\r
+\r
+ $BBOX_sql.=" OR code='".$val['zones'][$count-1]."'";\r
+\r
+ }\r
+ $c++;\r
+ }\r
+\r
+ }//end if bbox\r
+ //echo $BBOX_sql;\r
+\r
+ $postgis_result=pg_query($BBOX_sql);\r
+\r
+ while ($row = pg_fetch_array($postgis_result, NULL, PGSQL_ASSOC))\r
+ {\r
+\r
+ $b=substr($row['extent'],4);\r
+ // echo $height;\r
+ $cadena=substr($b,0,-1); \r
+ $bbox=str_replace(' ',',',$cadena);\r
+ // echo "this is bbox".$bbox;\r
+ }\r
+ }\r
+ \r
+ }\r
+ \r
+$recalculate="true";\r
+if ($_GET['recalculate'])\r
+{\r
+if ($_GET['recalculate']=='false')\r
+{\r
+$recalculate='false';\r
+}\r
+};\r
+\r
+\r
+ if ($recalculate=="true")\r
+ {\r
+ $bbox2=explode(',',$bbox); \r
+\r
+ $ratio_x=$bbox2[2]-$bbox2[0];\r
+ $ratio_y=abs($bbox2[1]-$bbox2[3]);\r
+ if (((($ratio_x)/$ratio_y))<2)\r
+ {\r
+ $to_change='x';\r
+ // echo "yesss XXXX";\r
+ //echo "ratio is ".(($ratio_x*2)/$ratio_y)."<br>";\r
+ }\r
+ else \r
+ { \r
+ $to_change='y';\r
+ }\r
+ switch ($to_change)\r
+ {\r
+\r
+ case 'x':\r
+ $diff_x=abs((($ratio_x)/2 -$ratio_y)/2); \r
+ $bbox2[0]=$bbox2[0]-$diff_x; \r
+ $bbox2[2]=$bbox2[2]+$diff_x; \r
+ $bbox=$bbox2[0].",".$bbox2[1].",".$bbox2[2].",".$bbox2[3];\r
+ $ratio=$ratio_x/$ratio_y;\r
+ $width = (int)($height+($ratio*30));\r
+ break; \r
+\r
+\r
+ case 'y':\r
+\r
+ $diff_x=abs((($ratio_x -$ratio_y)/2)/2); \r
+ if ($bbox2[1]<0)\r
+ {\r
+ //echo "bbox_1 negativa";\r
+ $bbox2[1]=$bbox2[1]-$diff_x;\r
+ if (abs($bbox2[1])>90)\r
+ {\r
+ $bbox2[1]=-90;\r
+ }\r
+ }\r
+ else \r
+ {\r
+ $bbox2[1]=$bbox2[1]-$diff_x; \r
+ if (abs($bbox2[1])>90)\r
+ {\r
+ $bbox2[1]=90; \r
+ }\r
+ };\r
+ if ($bbox2[3]<0 )\r
+ {\r
+ $bbox2[3]=$bbox2[3]+$diff_x; \r
+ if (abs($bbox2[3])>90)\r
+ {\r
+ $bbox2[3]=-90; \r
+ }\r
+ }\r
+ else\r
+ {\r
+ $bbox2[3]=$bbox2[3]+$diff_x;\r
+ if (abs($bbox2[3])>90)\r
+ {\r
+ $bbox2[3]=90; \r
+ }\r
+ }\r
+ $bbox=$bbox2[0].",".$bbox2[1].",".$bbox2[2].",".$bbox2[3];\r
+ break;\r
+ }//fi switch\r
+ }//fi recalculate=true\r
+ else\r
+ {\r
+ //Recalculate =false (we try to put everything)
+ //test added by ftheeten 2010/04/09 to avoid error message\r
+ if($ratio_y!=0)
+ {
+ $ratio=$ratio_x/$ratio_y;\r
+ }
+ //echo $ratio;\r
+// $height = (int)($width / $ratio);\r
+ \r
+ }\r
+ \r
+//echo $height;\r
+$url_list=array();\r
+$legend_list=array();\r
+$files_list=array();\r
+\r
+$c=count($gmls);\r
+\r
+global $bbox;\r
+if (isset($_GET['foo']))\r
+{\r
+ $json='foo({"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":['; \r
+}\r
+else\r
+{\r
+$json='[{"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":[';\r
+}\r
+$i=0;\r
+foreach ($gmls as $feature=>$v)\r
+{\r
+$i++;\r
+$dom_new = new DOMDocument();\r
+\r
+switch ($feature)\r
+{\r
+\r
+\r
+ case ('tdwg1'): $layer='topp:tdwg_level_1';$db_layer='tdwg_level_1';\r
+ $field='code';\r
+ $label_field='zona';\r
+ break;\r
+ case ('tdwg2'): $layer='topp:tdwg_level_2';$db_layer='tdwg_level_2';\r
+ $field='code';\r
+ $label_field='code';\r
+ break;\r
+ case ('tdwg3'): $layer='topp:tdwg_level_3'; $db_layer='tdwg_level_3';\r
+ $field='code';$layer_sh="TDWG 3";$label_field='code';\r
+ break;\r
+ case ('tdwg4'): $layer='topp:tdwg_level_4';$db_layer='tdwg_level_4';\r
+ $field="code";\r
+ $label_field='code';$layer_sh="TDWG 4";\r
+ break;\r
+}\r
+\r
+$p=simplexml_load_string($gmls[$feature]);\r
+$hatching=$p->style->hatching;\r
+$xsl = new XSLTProcessor;\r
+$xsl->setParameter( '', 'symbol', $hatching);\r
+$xsl->setParameter( '', 'layer', $layer);\r
+$xsl->setParameter( '', 'field', $field);\r
+$xsl->setParameter( '', 'label_field', $label_field);\r
+$style = realpath('areas.xsl');\r
+$dom_new->load($style);\r
+$xsl->importStyleSheet($dom_new);\r
+$dom_new->loadXML($gmls[$feature]);\r
+$out = $xsl->transformToXML($dom_new);\r
+srand(time());\r
+//$random = (rand()%300).".sld";\r
+$path_towrite=DIR_PLATFORM."/synthesys/www/v1/sld/".$feature."_".$random;\r
+//echo $path_towrite;\r
+$fp=fopen("$path_towrite","w");\r
+$write=fwrite($fp,$out);\r
+array_push($files_list,$path_towrite);\r
+//echo $out;\r
+\r
+\r
+\r
+$json.='{"tdwg": "' . $feature. '","session": "'.$sessionid.'",';\r
+\r
+//$json.='"sld": "' . $feature."_".$random.'"}';\r
+//correction ftheeten 09/04/2010
+$json.='"sld": "' . V1_SLD_URL."/".$feature."_".$random.'"}';
+
+
+if ($i < $c)\r
+{\r
+$json.=',';\r
+}\r
+\r
+$url=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&TRANSPARENT=TRUE&SERVICE=WMS&EPSG=4326&layers=";\r
+$url.=$layer."&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&SLD=".URL_SITE."/synthesys/www/v1/sld/".$feature."_".$random;\r
+
+//print($url);
+\r
+//provinces,world\r
+\r
+\r
+\r
+\r
+global $height;\r
+\r
+\r
+\r
+\r
+$url_list[]=$url;\r
+$legend_list[]=$legend_url;\r
+}
+//correction ftheeten 09/04/2010
+$json.="]";
+
+
+$json.=",\"geoserver\": \"".URL_GEOSERVER."\"";\r
+$json.="}";
+if (isset($_GET['foo']))\r
+{\r
+$json.=")"; \r
+}\r
+else\r
+{\r
+$json.="]"; \r
+}\r
+\r
+\r
+\r
+\r
+$img=$_GET['img'];\r
+\r
+if ($img=='false')\r
+{
+//RMCA 09/04/2010
+\r
+if ($img=='false')
+{
+ $headerText="Content-Type: application/json";
+
+}
+
+header($headerText);\r
+echo $json;\r
+}\r
+else\r
+{\r
+ $random3=DIR_PLATFORM."/synthesys/www/v1/img/".md5($_SERVER["REQUEST_URI"] )."_layers.png";\r
+\r
+ \r
+ if ($ls_string)\r
+ {\r
+ $url2=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&TRANSPARENT=TRUE&SERVICE=WMS&EPSG=4326&layers=".$ls_string;\r
+ $url2.="&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&STYLES=".$styles_string;\r
+ $c="convert '$url2' '$random3'";\r
+ shell_exec($c);\r
+\r
+ } \r
+ else\r
+ {\r
+ $c="convert convert -size '".$width."x".$height."' xc:transparent $random3";\r
+\r
+ shell_exec($c);\r
+ }\r
+
+//print(count($url_list)>1);\r
+\r
+if(count($url_list)>1)\r
+{\r
+\r
+$c="composite ";\r
+for ($i=0;$i<count($url_list);$i++)\r
+{\r
+$c.="'".$url_list[$i]."' ";\r
+}\r
+\r
+$c.="'$random2' ";\r
+\r
+shell_exec($c);\r
+$c="composite '$random3' '$random2' '$random2'";\r
+\r
+shell_exec($c);\r
+\r
+}\r
+else\r
+{\r
+//SLDs over normal layers\r
+$c="composite '$url_list[0]' '$random3' '$random2'";\r
+\r
+shell_exec($c);\r
+\r
+\r
+}\r
+\r
+\r
+//print($c);
+//print("----------------");
+\r
+if ($leg=='1')\r
+{\r
+ $legend_url=URL_GEOSERVER."/GetLegendGraphic?SERVICE=WMS&VERSION=1.1.1&format=image/png&TRANSPARENT=TRUE&WIDTH=64&HEIGHT=36&";\r
+ $legend_url.="layer=topp:tdwg_level_3&LEGEND_OPTIONS=forceLabels:on;fontStyle:italic;fontSize:12&SLD=".$leg_url;\r
+ \r
+$mlp=$_GET['mlp'];\r
+switch ($mlp)\r
+{\r
+case ('1'):\r
+ {\r
+\r
+$com="convert +append '$legend_url' '$random2' '$random2'"; //-->exterior ul \r
+break;\r
+ }\r
+case ('2'):\r
+ {\r
+$com="convert -append '$legend_url' '$random2' '$random2'"; //2\r
+ break;\r
+ }\r
+ case ('3'):\r
+ {\r
+$com="convert +append '$random2' '$legend_url' '$random2'"; //4\r
+break;\r
+ }\r
+ \r
+case ('4'):\r
+ {\r
+ \r
+$com="convert -append '$random2' '$legend_url' '$random2'"; //7\r
+break;\r
+ }\r
+case ('5'):\r
+ { \r
+ $com="composite -gravity SouthEast '$legend_url' '$random2' '$random2'";//9\r
+break;\r
+} \r
+case ('6'):\r
+ { \r
+ $com="composite -gravity SouthWest '$legend_url' '$random2' '$random2'";//10\r
+break;\r
+} \r
+case ('7'):\r
+ { \r
+ $com="composite -gravity NorthEast '$legend_url' '$random2' '$random2'";//11\r
+break;\r
+} \r
+case ('8'):\r
+ { \r
+ $com="composite -gravity NorthWest '$legend_url' '$random2' '$random2'";//12\r
+break;\r
+} \r
+}\r
+shell_exec($com);\r
+}\r
+
+$headerText="Content-Type: image/png";
+\r
+
+//RMCA 09/04/2010
+header($headerText);
+
+
+
+ \r
+readfile($random2);\r
+unlink($random2);\r
+\r
+}\r
+clearstatcache();\r
+$time=time();\r
+\r
+\r
+while($entry = $d->read()) { \r
+ if ($entry!= "." && $entry!= "..") { \r
+\r
+ $f_last_modified = filemtime($sld_dir."/".$entry);\r
+\r
+if ($time-$f_last_modified >400)\r
+{\r
+unlink($sld_dir."/".$entry);\r
+} \r
+\r
+ } \r
+} \r
+\r
+while($entry = $e->read()) { \r
+ if ($entry!= "." && $entry!= "..") { \r
+\r
+ $f_last_modified = filemtime($img_dir."/".$entry);\r
+\r
+if ($time-$f_last_modified >400000)\r
+{\r
+unlink($img_dir."/".$entry);\r
+} \r
+\r
+ } \r
+} \r
+$d->close(); \r
+$e->close();\r
+\r
+\r
+?>