Revert "converting CRLF to LF"
[geo.git] / edit_wp5_web_folder / v1 / areas_sld.php
diff --git a/edit_wp5_web_folder/v1/areas_sld.php b/edit_wp5_web_folder/v1/areas_sld.php
new file mode 100644 (file)
index 0000000..b15e857
--- /dev/null
@@ -0,0 +1,1009 @@
+<?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
+?>