"Rozdzielcza_test2_bzyk_punkty_adresowe", "origWaysTable"=>"Rozdzielcza_test2_bzyk_drogi")); //$test->enableShowProgress(); $test->loadCache(); function array_to_xml( $data, &$xml_data ) { foreach( $data as $key => $value ) { $key_=""; if( is_numeric($key) ){ $key_ = 'item'; } if( is_array($value) ) { $subnode = $xml_data->addChild($key_); $subnode->addAttribute('id', $key); array_to_xml($value, $subnode); } else { // $test_expl=explode(" ", $value); //preg_match('/[a-zA-Z]/', $value[0]) //if($key_=="" and !isset($test_expl[1]) ) $key_=htmlspecialchars("$value"); //czy nie jest jeden element array if($key_=="" and count($data[$key]==1)) { $subnode=$xml_data->addChild("$key",htmlspecialchars("$value")); } else $subnode=$xml_data->addChild("$key_",htmlspecialchars("$value")); if( is_numeric($key) ){ $subnode->addAttribute('id', $key); } } } } $ways2joins = unserialize(file_get_contents('/tmp/save_ways2joins.txt')); $joins2ways = unserialize(file_get_contents('/tmp/save_joins2ways.txt')); $points2joins = unserialize(file_get_contents('/tmp/save_points2joins.txt')); $joins_asText = unserialize(file_get_contents('/tmp/save_joins_asText.txt')); $ways_asText = unserialize(file_get_contents('/tmp/save_ways_asText.txt')); $points_asText = unserialize(file_get_contents('/tmp/save_points_asText.txt')); $edge_joins=simplexml_load_file("edge_joins.xml"); $edge_joins->registerXPathNamespace('bp', 'https://procesy5.pl/biale_plamy-schema.xsd'); //print_r($edge_joins); foreach($edge_joins->children() as $child) { // echo "\n
"; //$attrs=$child->attributes("ID_Way"); foreach($child->attributes() as $a=>$b) { // echo "#87Child";print_r($b[0]); $ID_Way=$b[0]; } //echo $child->getName() . ": " . " ID_Way: ".$ID_Way. " : "; $id_j=0; settype($ID_Way, "integer"); //$ID_Way=var_dump($ID_Way); // echo "#88Child:"; print_r($ID_Way); //$edge_joins_path['ID_Way'][$attrs['ID_Way']]=array(); foreach($child->children('https://procesy5.pl/biale_plamy-schema.xsd') as $edge_joins_xml) { $id_j++; $attrs_join=$edge_joins_xml->attributes(); //echo " #93 ID_Join ".$attrs_join["Joins"]." "; $Join=$attrs_join["Joins"][0]; settype($Join, "integer"); $edge_joins_path[$ID_Way][$id_j]=$attrs_join["Joins"][0]; } } ///////// DB::getPDO()->query("truncate table Rozdzielcza_test_bzyk_paths"); unset($ID_Way); $edge_joins_filled_paths=array(); foreach($edge_joins_path as $ID_Way=>$Joins_arr) { settype($ID_Way, "integer"); $edge_joins_filled_paths[$ID_Way]['tried']=1; if(isset($Joins_arr[1]) and isset($Joins_arr[2])) { $pkt_A=$Joins_arr[1];$pkt_B=$Joins_arr[2]; settype($pkt_A, "integer"); settype($pkt_B, "integer"); echo "\n
Generuje dla ID_Way:".$ID_Way." i joins ".$pkt_A." , ".$pkt_B." "; unset($res);unset($path); $res = $test->findWay($pkt_A, $pkt_B); $lineStringObj = $test->joins2lineString($res); if($lineStringObj) { $path = $lineStringObj->asText(); //$res = findWay($pkt_A,$pkt_B); //$path = joins2lineString($res)->asText(); // joins2lineString(findWay(389,404)); settype($path, "string"); $edge_joins_filled_paths[$ID_Way]['asText'] = $path; $distance = 0; foreach ($res as $way_key) { if(isset($ways_asText[$way_key])) $distance += Vendor_Geophp::load($ways_asText[$way_key], 'wkt')->greatCircleLength(); } $edge_joins_filled_paths[$ID_Way]['distance'] = $distance; //joins2lineString(findWay($Joins_arr[1],$Joins_arr[2])); //joins2lineString($res = findWay($joinAB['A'],$joinAB['B']))->asText(); $sql_insert_path="insert into Rozdzielcza_test_bzyk_paths (the_geom,ID_Way, A_RECORD_CREATE_DATE ) values (ST_GeomFromText('".$edge_joins_filled_paths[$ID_Way]['asText']."'),'".$ID_Way."' , now() ) "; echo "#216Query path ins:: ".$sql_insert_path." , distance:".$distance." "; if(strlen($edge_joins_filled_paths[$ID_Way]['asText'])>2) DB::getPDO()->query($sql_insert_path); else echo "#296 path nie wygenerowalo sie !! dla ".$ID_Way." i pkt ".$pkt_A." , ".$pkt_B." \n"; } else { echo "ERROR 131 dla pkt: ID_WAY:".$ID_Way; print_r($Joins_arr); } } else echo "\n#220 droga nie ma koncow ID_Way::".$ID_Way; } echo "
\n edge_joins_filled_paths:"; print_r($edge_joins_filled_paths); //save unset($xml_data); file_put_contents('edge_joins_filled_paths.txt',serialize($edge_joins_filled_paths)); ob_start();print_r($edge_joins_filled_paths); $contents = ob_get_contents();ob_end_clean(); file_put_contents('edge_joins_filled_paths_print_r.txt',$contents); $xml_data = new SimpleXMLElement(''); array_to_xml($edge_joins_filled_paths,$xml_data); print $xml_data->asXML("edge_joins_filled_paths.xml"); unset($xml_data);