49.0023866380461 14.1229300045899 //54.8357888684533 24.1457361773594 //EPSG:2180 378316,423036 //54.13000,18.3156,54.3226,18.5427 foreach($layers as $layer) { for($y=$bbox_y0;$y<=$bbox_y1;$y=$y+$step_y) { for($x=$bbox_x0;$x<=$bbox_x1;$x=$x+$step_x) { $url_get=$url."&typename=".$layer.'&srsName='.$srsName.'&bbox='.$y.','.$x.','.($y+$step_y).','.($x+$step_x); echo "
".$url_get; //break 2 ; echo "
bede jechac ".$url_get; $xml_=get_data($url_get); //$xmlarray = array(); // this will hold the flattened data $element = simplexml_load_string($xml_); $element->registerXPathNamespace('G2_GO_WFS', 'http://mapy.geoportal.gov.pl:80/wss/service/pub/guest/G2_GO_WFS/MapServer/WFSServer'); $element->registerXPathNamespace('gml', 'http://www.opengis.net/gml'); $element->registerXPathNamespace('wfs', 'http://www.opengis.net/wfs'); //$element->registerXPathNamespace('p', 'http://example.org'); // $positions = $element->xpath('/wfs:FeatureCollection[1]/gml:featureMember/gmgml:Dzialki'); $positions = $element->xpath('/wfs:FeatureCollection[1]/gml:featureMember'); DEBUG_S(-3,'Element positions',$positions,__FILE__,__FUNCTION__,__LINE__); //$count[]=$positions->count(); $i=0; foreach ($positions as $pos) { // $pos_id = $element->xpath('/wfs:FeatureCollection/gml:featureMember/G2_GO_WFS:Dzialki[@gml:id="F324__22282165"]/G2_GO_WFS:OBJECTID'); /* $pos_id = $element->xpath('/wfs:FeatureCollection/gml:featureMember/G2_GO_WFS:Dzialki[@gml:id="F324__22458175"]/G2_GO_WFS:IDENTYFIKATOR'); foreach($pos_id as $pos_id_) { echo "
136: "; print_r($pos_id_->__toString()); } */ $pos_ = $pos->xpath('./G2_GO_WFS:Dzialki/@gml:id'); // DEBUG_S(-3,'pos_',$pos,__FILE__,__FUNCTION__,__LINE__); foreach ($pos_ as $ind_=>$pos__) { $seq[]=1; $exp[$i]['ID']=$pos__->__toString(); /// $result[] = $pos__->__toString(); $i++; } } DEBUG_S(-3,'Element exp',$exp,__FILE__,__FUNCTION__,__LINE__); $cols=array('IDENTYFIKATOR'=>'G2_GO_WFS:IDENTYFIKATOR','POWIERZCHNIA'=>'G2_GO_WFS:POWIERZCHNIA','posList'=>'G2_GO_WFS:SHAPE/gml:MultiSurface/gml:surfaceMember/gml:Polygon/gml:exterior/gml:LinearRing/gml:posList'); //todo jak zrobic atrubuty ? 'EPSG'=>'gmgml:GEOMETRIA_DEG/gml:Polygon@' foreach($cols as $column=>$xpath) { foreach($seq as $ind=>$val) { // echo "
Xpath test ".'/wfs:FeatureCollection/gml:featureMember/G2_GO_WFS:Dzialki[@gml:id="'.$exp[$ind]['ID'].'"]/'.$xpath; $pos1_=$element->xpath('/wfs:FeatureCollection/gml:featureMember/G2_GO_WFS:Dzialki[@gml:id="'.$exp[$ind]['ID'].'"]/'.$xpath); //echo "
exp[".$ind. "][".$column."]="; foreach($pos1_ as $pos1__) { $exp[$ind][$column]=$pos1__->__toString(); // echo "DET: .. a string to ".$pos1__->__toString(); } } } //var_dump($result); DEBUG_S(-3,'x',array($url_get,$xml_,$xml,$element,$result,$ind,$count,$exp),__FILE__,__FUNCTION__,__LINE__); foreach($exp as $exp_) { $WKT_a=explode(" ", $exp_['posList']); $y_=false; $WKT=''; $WKT_=array(); $i=0; foreach($WKT_a as $ref) { if(!$y_) $y_=$ref; else { $WKT_[]=$ref." ".$y_; $y_=false; } $i++; } $WKT=implode(",", $WKT_); //print_r($WKT); //$sql='delete from "'.$tbl_dest.'" where "REM_SYSTEM"=\''.$url.'\' and "REM_ID"=\''.$exp_['ID'].'\''; //$gdb->query($sql); //nie kasujemy istniejaych obiektow - TODO $sql='select "REM_ID" from "'.$tbl_dest.'" where "REM_SYSTEM"=\''.$url.'\' and "REM_ID"=\''.$exp_['ID'].'\' '; $res=$gdb->query($sql); if($gdb->count($res)<1) { $sql='insert into "'.$tbl_dest.'" ( "REM_SYSTEM","REM_ID","IDENTYFIKATOR","POWIERZCHNIA","posList","A_RECORD_CREATE_DATE" ) values (\''.$url.'\',\''.$exp_['ID'].'\',\''.$exp_['IDENTYFIKATOR'].'\' , \''.$exp_['POWIERZCHNIA'].'\',ST_GeomFromEWKT(\'SRID=4326;POLYGON(('.$WKT.'))\') ,now() ) '; DEBUG_S(-3,"SQL",$sql,__FILE__,__FUNCTION__,__LINE__); $gdb->query($sql); } else echo " | Obj ".$exp_['ID']." already exists in DB"; } unset($exp); unset($seq); // die(); // die('test'); } } flush(); //break 2; } echo "
pojechalem"; echo ""; }