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 "";
}