+++ /dev/null
-<?\r
-require_once("../path_index.php");\r
-//header('Content-type: text/xml');\r
-//header("Content-Type: image/png"); \r
-\r
-$q_layer=$_GET['q_layer'];\r
-switch ($q_layer)\r
-{\r
-\r
- case ('e_provinces'): $q_layer="province_europe";break;\r
- case ('sp_provinces'): $q_layer="province_iberia";break;\r
- case ('tdwg2'): $q_layer="tdwg_level_2";break;\r
- case ('tdwg3'): $q_layer="tdwg_level_3";break;\r
- case ('tdwg4'): $q_layer="tdwg_level_4";break;\r
-}\r
-//added ftheeteb\r
-$q_layer="topp:".$q_layer;\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
-//$od="1: 38.326, -0.822|38.328,-0.542|38.062,-0.893||2: 38.062,-0.893| 38.072,-0.883||3:40.78,-4.009|43.461,-5.412";\r
-//$points=explode('||',$_GET['od']);\r
-\r
-$od=$_GET['od'];\r
-$points=explode('||',$od);\r
-$geodata=array();\r
-foreach ($points as $k=>$v)\r
-{\r
- $specie=explode(":",$v);\r
-//id of the recordset\r
- $id=$specie[0];\r
-//geodata of each recordset\r
- $geo=explode('|',$specie[1]);\r
- foreach ($geo as $key=>$value)\r
- {\r
- $geos=explode(',',$value);\r
- $geodata[$id]['geodata']['lon'][]=$geos[0];\r
- $geodata[$id]['geodata']['lat'][]=$geos[1];\r
- }\r
-}\r
-//$os="1:c/f78755/10/Onthophagus semipunctatus|2:s/64cb48/15/Euoniticellus pallipes|3:sq/090b0a/30/Onthophagus joannae";\r
-$os=$_GET['os'];\r
-\r
-$sp=explode('|',$os);\r
-$species=array();\r
-foreach ($sp as $k=>$v)\r
-{\r
- $sym=explode(':',$v);\r
- $specie_id=$sym[0];\r
- $symbologies=explode('/',$sym[1]);\r
- $geodata[$specie_id]['symbol']=$symbologies[0];\r
- $geodata[$specie_id]['color']=$symbologies[1];\r
- $geodata[$specie_id]['size']=$symbologies[2];\r
- $geodata[$specie_id]['legend']=$symbologies[3];\r
-}\r
-//var_dump($geodata['1']);\r
-//var_dump($species)\r
-$sqls=array();\r
-//$od="1: 38.326, -0.822|38.328,-0.542||2: 38.062,-0.893| 38.072,-0.883";\r
-srand(time());\r
-$random = (rand()%300);\r
-foreach ($geodata as $key=>$val)\r
-{\r
- foreach ($geodata[$key]['geodata']['lat'] as $k=>$v)\r
- {\r
- $sql="insert into rest_points(userid,id,the_geom,label) values(".$random.",".$key.",";\r
- $sql.="GeometryFromText('POINT(".$v." ";\r
- $sql.=$geodata[$key]['geodata']['lon'][$k];\r
- $sql.=")',4326),'".$geodata[$key]['legend']."');";\r
- $sqls[]=$sql;\r
- }\r
-}\r
-//echo $sql;\r
-$total="";\r
-foreach ($sqls as $k=>$v)\r
-{\r
-// echo $v."<br>";\r
-$sql_total.=$v;\r
-}\r
-\r
-//$conn = pg_connect(POSTGIS_CS);\r
-//ftheeten modification\r
-$conn=pg_connect(POSTGIS_CS);\r
-\r
-if (pg_ErrorMessage($conn))\r
- { \r
-echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; \r
- }\r
-else\r
- {\r
-pg_exec($sql_total); \r
-\r
-if ($_GET['bbox'])\r
-{\r
- $bbox=$_GET['bbox'];\r
-}\r
-else{\r
-\r
-$BBOX_sql="select extent(".$q_layer.".the_geom) from ".$q_layer.",rest_points where rest_points.userid='$random' and $q_layer.the_geom&&rest_points.the_geom and contains(".$q_layer.".the_geom,rest_points.the_geom)"; \r
-// echo $BBOX_sql;\r
- $postgis_result=pg_query($BBOX_sql);\r
- while ($row = pg_fetch_array($postgis_result, NULL, PGSQL_ASSOC))\r
- {\r
- $b=substr($row['extent'],4);\r
- $c=substr($b,0,-1); \r
- $bbox=str_replace(' ',',',$c);\r
- }\r
- $bbox2=explode(',',$bbox);\r
- $x1=$bbox2[0]; \r
- $y1=$bbox2[1]; \r
- $x2=$bbox2[2]; \r
- $y2=$bbox2[3];\r
-// $bbox=$x1.",".$y1.",".$x2.",".$y2;\r
- $ratio_x=$bbox2[2]-$bbox2[0];\r
- $ratio_y=abs($bbox2[1]-$bbox2[3]);\r
- if ($_GET['recalculate']=='true')\r
- {\r
- if (((($ratio_x)/$ratio_y))<2)\r
- {\r
- $to_change='x';\r
- }\r
- else \r
- { \r
- $to_change='y';\r
- }\r
- switch ($to_change)\r
- {\r
- case 'x':\r
- //$bbox="-180,-90,180,90"; \r
- //echo $ratio_x."<br>";\r
- //echo $ratio_y."<br>";\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
- //echo $ratio."<br>";\r
- //echo $height."<br>";\r
- $width = (int)($height+($ratio*30));\r
- //echo $height;\r
- //echo $width;\r
- break; \r
-\r
-\r
- case 'y':\r
-\r
- //echo "yyyy";\r
- //$diff_x=(($ratio_x)/2)/2; \r
- $diff_x=abs((($ratio_x -$ratio_y)/2)/2); \r
-\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)\r
- $ratio=$ratio_x/$ratio_y;\r
- //echo $ratio;\r
- $height = (int)($width / $ratio);\r
- }\r
-\r
-\r
- } //fi ELSE\r
-\r
-\r
-$xml="<gml>";\r
-$xml.="<feature>Species definition</feature>";\r
-\r
-foreach ($geodata as $k=>$v)\r
-{\r
- switch ($geodata[$k]['symbol'])\r
- {\r
- case('c'):$geodata[$k]['symbol']="Circle"; break; \r
- case('s'):$geodata[$k]['symbol']="Star"; break;\r
- case('sq'):$geodata[$k]['symbol']="Square"; break;\r
- }\r
-//echo $geodata[$k]['legend']."<br>";\r
- $xml.="<specie>";\r
- $xml.="<id>".$k."</id>";\r
- $xml.="<name>".$geodata[$k]['legend']."</name>";\r
- $xml.="<style>";\r
- $xml.="<color>".$geodata[$k]['color']."</color>";\r
- $xml.="<symbol>".$geodata[$k]['symbol']."</symbol>";\r
- $xml.="<size>".$geodata[$k]['size']."</size>";\r
- $xml.="</style>";\r
- $xml.="</specie>"; \r
-}\r
-$xml.="</gml>";\r
-//echo $xml;\r
-$dom_new = new DOMDocument();\r
-$xsl = new XSLTProcessor;\r
-$xsl->setParameter( '', 'userid', $random);\r
-$style = realpath('points.xsl');\r
-$dom_new->load($style);\r
-$xsl->importStyleSheet($dom_new);\r
-$dom_new->loadXML($xml);\r
-$out = $xsl->transformToXML($dom_new);\r
-//echo $out;\r
-\r
-\r
-//$path_towrite=DIR_PLATFORM."/synthesys/www/fitxers/sld/point_".$random.".sld";\r
-$path_towrite=SLD_DIR3."/point_".$random.".sld";\r
-print($path_towrite);\r
-$fp=fopen("$path_towrite","w");\r
-$write=fwrite($fp,$out);\r
-\r
-//$l2="r:elevation|v:provinces";\r
-//$l2="v:tdwg3";\r
-$l2=$_GET['l'];\r
-$l2=explode('|',$l2);\r
-$layers=array();\r
-//var_dump($l2);\r
-foreach ($l2 as $k=>$v)\r
-{\r
- $l2=explode(':',$v);\r
- $list=explode(',',$l2[1]);\r
-// $data_type=$l2[0];\r
- foreach ($list as $k=>$v)\r
- {\r
- switch ($v)\r
- {\r
- case ('alpi_acqua'):$v="topp:AlpMar_Acqua";break;\r
- case ('elevation'): $v="topp:elevation_europe_150sec";break;\r
- case ('e_provinces'): $v="topp:province_europe";break;\r
- case ('sp_provinces'): $v="topp:province_iberia";break;\r
- case ('tdwg2'): $v="topp:tdwg_level_2";break;\r
- case ('tdwg3'): $v="topp:tdwg_level_3";break;\r
- case ('tdwg4'): $v="topp:tdwg_level_4";break;\r
- }\r
- if ($l2[0]=='r')\r
- {\r
- \r
- $layers['r'][]=$v;\r
- }\r
- else \r
- {\r
- $layers['v'][]=$v;\r
- }\r
- }\r
-\r
-}\r
-\r
- /*\r
- foreach ($l2 as $k=>$v)\r
- {\r
- \r
- }\r
-\r
- */\r
-//}\r
-// var_dump($layers);\r
-\r
-\r
-//var_dump($layers);\r
-//$edit_url=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&EPSG=4326&layers=";\r
-$edit_url=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&EPSG=4326&layers=";\r
-foreach ($layers as $k=>$v)\r
-{\r
-// var_dump($v);\r
- if ($k=='r')\r
- {\r
- $count=count($layers[$k]);\r
- if (count($layers[$k])<1)\r
- {\r
- $edit_url.=$layers[$k][0];\r
- }\r
- else\r
- {\r
- // echo count($layers[$k]);\r
- foreach ($layers[$k] as $k=>$v)\r
- {\r
- var_dump($v);\r
- $edit_url.=$v;\r
- if ($k<($count-1))\r
- {\r
- $edit_url.=","; \r
- }\r
- }\r
- }\r
- if ($layers['r'])\r
- {\r
- $edit_url.=",";\r
- }\r
- }\r
- else\r
- {\r
- $count=count($layers[$k]);\r
-\r
- if (count($layers['r'])>1)\r
- {\r
- $edit_url.=",";\r
- }\r
- if (count($layers[$k])<1)\r
- {\r
- $edit_url.=$layers[$k][0];\r
- } \r
- else\r
- {\r
- // echo count($layers[$k]);\r
- foreach ($layers[$k] as $k=>$v)\r
- {\r
- $edit_url.=$v;\r
- if ($k<($count-1))\r
- {\r
- $edit_url.=","; \r
- }\r
- }\r
- }\r
- }\r
-}\r
-\r
-\r
-\r
-//$edit_url.=",topp:rest_points&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&SLD=".URL_SITE."/synthesys/www/fitxers/sld/point_".$random.".sld";\r
-$edit_url.=",topp:rest_points&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&".SLD_URL3"./point_".$random.".sld";\r
-\r
-$image=imagecreatefrompng($edit_url);\r
-//var_dump($geodata);\r
-//echo count($geodata);\r
-$count=count($geodata);\r
-//echo $count;\r
-$wd=22;//*$count;\r
-$h=10;//*$count;\r
-//$legend_url=URL_GEOSERVER."/GetLegendGraphic?SERVICE=WMS&VERSION=1.1.1&format=image/png&WIDTH=$wd&HEIGHT=$h&layer=topp:rest_points&SLD=".URL_SITE."/edit_wp5/fitxers/sld/point_".$random.".sld";\r
-//echo $legend_url;\r
-//$l_image=imagecreatefrompng($legend_url);\r
-//imagecopymerge($image,$l_image,0,($height/2),0,0,$wd*8,$h*($count*1.3),100);\r
-\r
-imagepng($image);\r
-//imagedestroy($image);\r
-//imagedestroy($l_image);\r
-unlink($path_towrite); \r
-$delete="delete from rest_points where userid='$random' and not pk=29085";\r
-pg_exec($delete) or die();\r
-} //fi connexio bdades\r
-?>\r