|
\n";
switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "ПРЕДУПРЕЖДЕНИЕ $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "ОШИБКА $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "ФАТАЛЬНАЯ ОШИБКА $error->code: ";
break;
}
$flag = 0;
if($error->code == "1874"){
$return .= "Элемент '";
$errmes = trim($error->message);
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " содержит атрибут '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", имеющий значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое не совпадает с фиксированным значением '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ".";
$flag = 1;
}
if($error->code == "1871"){
$errmes = trim($error->message);
$pos = strpos($errmes, "Missing child element(s).");
if($pos){
$return .= "В элементе '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " не хватает дочернего(их) элемента(ов), ожидается(ются) элемент(ы) '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "(" && $errmes[$i + 1] == " ")
break;
}
for($i = $i + 2;;$i++){
$return .= $errmes[$i];
if($errmes[$i + 1] == " " && $errmes[$i + 2] == ")")
break;
}
$return .= "'.";
}
$pos = strpos($errmes, "This element is not expected.");
if($pos){
$pos = strpos($errmes, "This element is not expected. Expected");
if($pos){
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " находится в недопустимом месте, ожидается(ются) элемент(ы) '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "(" && $errmes[$i + 1] == " ")
break;
}
for($i = $i + 2;;$i++){
$return .= $errmes[$i];
if($errmes[$i + 1] == " " && $errmes[$i + 2] == ")")
break;
}
$return .= "'.";
}else{
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " находится в недопустимом месте.";
}
}
$flag = 1;
}
if($error->code == "1824"){
$errmes = trim($error->message);
$pos = strpos($errmes, ", attribute");
if($pos){
$return .= "В элементе '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " атрибут '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое не соответствует его типу.";
}else{
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое не соответствует его типу.";
}
$flag = 1;
}
if($error->code == "1828"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " должен содержать внутри себя его значение, а найден другой элемент.";
$flag = 1;
}
if($error->code == "1840"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " содержит значение, которое не входит в список допустимых, например: ";
for($i = $i + 1;;$i++){
if($errmes[$i] == "{")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i + 1] == "}")
break;
}
$return .= ".";
$flag = 1;
}
if($error->code == "1831"){
$errmes = trim($error->message);
if(strpos($errmes, ", attribute")){
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет атрибут '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " со значением '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " длинной '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов), поэтому не достигает необходимый минимум в '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов).";
}else{
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет длинну значения '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов), поэтому не достигает необходимый минимум в '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов).";
}
$flag = 1;
}
if($error->code == "1832"){
$errmes = trim($error->message);
if(strpos($errmes, ", attribute")){
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет атрибут '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " со значением '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " длинной '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов), поэтому превышает обязательный максимум в '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов).";
}else{
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет длинну значения '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов), поэтому превышает обязательный максимум в '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " символа(ов).";
}
$flag = 1;
}
if($error->code == "1839"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " содержит атрибут '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", имеющий значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое не соответствует шаблону '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ".";
$flag = 1;
}
if($error->code == "1833"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое является меньшим, чем минимально допустимое: '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ".";
$flag = 1;
}
if($error->code == "1834"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет значение '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ", которое является большим, чем максимально допустимое: '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ".";
$flag = 1;
}
if($error->code == "1843"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " имеет внутри себя символы, выходящие за пределы контейнеров <>.";
$flag = 1;
}
if($error->code == "1845"){
$errmes = trim($error->message);
$return .= "Элемент '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " не найден в XML-схеме.";
$flag = 1;
}
if($error->code == "1868"){
$errmes = trim($error->message);
$return .= "В элементе '";
for($i = 9;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= " не хватает обязательного атрибута '";
for($i = $i + 1;;$i++){
if($errmes[$i] == "'")
break;
}
for($i = $i + 1;;$i++){
$return .= $errmes[$i];
if($errmes[$i] == "'")
break;
}
$return .= ".";
$flag = 1;
}
if($flag == 0)
$return .= trim($error->message);
return $return;
}
function libxml_display_errors() {
$errors = libxml_get_errors();
foreach ($errors as $error) {
print libxml_display_error($error);
}
libxml_clear_errors();
}
// Enable user error handling
libxml_use_internal_errors(true);
if($_POST['Type'] == "TP"){
$flag = 0;
if(isset($_POST['upload'])){
//Список разрешенных файлов
$whitelist = array(".zip");
$data = array();
$error = true;
//Проверяем разрешение файла
foreach ($whitelist as $item) {
if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
}
//если нет ошибок, грузим файл
if(!$error){
$folder = 'upload';//директория в которую будет загружен файл
$uploadedFile = "upload/".$_FILES['userfile']['name'];
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
$data = $_FILES['userfile'];
$flag = 1;
echo "Файл успешно загружен! ".$data['name'];
}
else {
echo "Во время загрузки файла произошла ошибка";
}
}
else {
echo "Файл не загружен ".$_FILES['userfile']['tmp_name'];
}
}
else{
echo 'Вы загружаете запрещенный тип файла';
}
}
echo " |
Структура архива:
|
";
if($flag == 1){
$flag1 = 0;
$zip = new ZipArchive;
$filenames = array();
$files = array();
if ($zip->open('upload/'.$data['name']) === true){
for($i = 0; $i < $zip->numFiles; $i++){
$files[$i] = "/".$zip->getNameIndex($i);
$folder = 0;
if(strpos($zip->getNameIndex($i), ".xml") !== false){
echo " | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".dwg") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".xls") !== false || strpos($zip->getNameIndex($i), ".xlsx") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".tpo") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".jpg") !== false){
echo "
 | ";
$folder = 1;
}
if($folder == 0){
echo "
 | ";
}
echo "".iconv("cp866", "windows-1251", $zip->getNameIndex($i))." |
";
if(strpos($zip->getNameIndex($i), ".xml") !== false && strpos($zip->getNameIndex($i), ".sig") === false){
$filenames[$i] = $zip->getNameIndex($i);
$fileindex = $i;
}
}
$NumFiles = $i;
echo "
";
echo "";
if(!is_dir("unzip/".$data['name']))
mkdir("unzip/".$data['name'], 0777);
$zip->extractTo("unzip/".$data['name']);
$zip->close();
echo "Читаю файл ".$filenames[$fileindex]."
";
$DOM = new DOMDocument();
$DOM->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]);
if (!$DOM->schemaValidate('C:\Разработка\doc_V02_STD_TP\V02_STD_TP\STD_TP.xsd')) {
print 'Файл не прошёл валидацию!';
libxml_display_errors();
}else{
echo "Файл валидный!";
}
}else{
echo 'А архивчик-то, битый!';
$flag1 = 1;
}
}
echo " |
";
//Общие сведения
$xml = new DOMDocument();
$xml->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]);
$xml->encoding = 'utf-8';
echo "Кадастровый инженер| ";
$Eng_Type = $xml->getElementsByTagName("Cadastral_Engineer")->item(0);
foreach($Eng_Type->childNodes as $CadEng){
if($CadEng->nodeName == "FIO"){
foreach($CadEng->childNodes as $FIO){
if($FIO->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $FIO->nodeValue);
}
if($FIO->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$FIO->nodeValue);
}
if($FIO->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$FIO->nodeValue);
}
}
}
}
echo " |
";
echo "Общие сведения";
if(is_object($Obj_Type = $xml->getElementsByTagName("Building")->item(0))){
if(is_object($Building_Type = $xml->getElementsByTagName("New_Building")->item(0))){
$CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0);
echo "| Здание, постановка на учет |
";
$Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема геодезических построений | На месте! |
";
}else{
echo "| Схема геодезических построений | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){
$Meth['1'] = "Раздел";
$Meth['2'] = "Выдел";
$Meth['9'] = "Иное";
$Method = $xml->getElementsByTagName("Method")->item(0);
echo "| Метод образования | ".$Meth[$Method->nodeValue]." |
";
}
echo "| Кадастровый квартал | ".$CadNumPar->nodeValue." | Посмотреть на кадастровой карте |
";
}
if(is_object($Building_Type = $xml->getElementsByTagName("Exist_Building")->item(0))){
$CadNum = $xml->getElementsByTagName("Number_Register")->item(0);
echo "| Здание, уточнение |
";
$Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема геодезических построений | На месте! |
";
}else{
echo "| Схема геодезических построений | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
/*if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}*/
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
echo "| Кадастровый номер | ".$CadNum->childNodes->item(0)->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){
$first = 0;
foreach($ParentNum->childNodes as $CadastralNum){
if($CadastralNum->nodeName == "CadastralNumber"){
if($first == 0){
echo "| Кадастровый номер земли | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
$first = 1;
}else{
echo " | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
}
}
}
$PrevNums = $xml->getElementsByTagName("Cad_Number_Prev")->item(0);
if(is_object($PrevNums)){
$first = 0;
foreach($PrevNums->childNodes as $PrevNum){
if($PrevNum->nodeName == "CadastralNumber"){
if($first == 0){
echo "| Объект, из которого образовано здание | ".$PrevNum->nodeValue." | Проверить на росреестре |
";
$first = 1;
}else{
echo " | ".$PrevNum->nodeValue." | Проверить на росреестре |
";
}
}
}
}
$Assignation['204001000000'] = "Нежилое здание";
$Assignation['204002000000'] = "Жилой дом";
$Assignation['204003000000'] = "Многоквартирный дом";
$Assig_C = $xml->getElementsByTagName("Assignation_Code")->item(0);
echo "| Назначение | ".$Assignation[$Assig_C->nodeValue]." |
";
$Area = $xml->getElementsByTagName("Area")->item(0);
echo "| Площадь | ".$Area->nodeValue." |
";
$Floors = $xml->getElementsByTagName("Floors")->item(0);
echo "| Этажность | ".$Floors->getAttribute('Floors')." |
";
echo "| Подземная этажность | ".$Floors->getAttribute('Underground_Floors')." |
";
echo "
";
//Инвентарные номера
$OldNums = $xml->getElementsByTagName("Old_Numbers")->item(0);
if(is_object($OldNums)){
echo "Инвентарные номера| № п/п | Тип | Номер | Дата присвоения | Организация | ";
$i = 1;
$NumType["01"] = "Инвентарный";
$NumType["02"] = "Условный";
$NumType["03"] = "Кадастровый";
$NumType["99"] = "Иной";
foreach($OldNums->childNodes as $OldNum){
if($OldNum->nodeName == "Old_Number"){
echo "";
echo "| ".$i." | ";
echo "".$NumType[$OldNum->getAttribute('Type')]." | ";
echo "".$OldNum->getAttribute('Number')." | ";
echo "".$OldNum->getAttribute('Date')." | ";
echo "".iconv('utf-8', 'windows-1251', $OldNum->getAttribute('Organ'))." | ";
echo "
";
}
}
echo "
";
}
//Правообладатель
echo "Правообладатель";
$Client_Type = $xml->getElementsByTagName("Client")->item(0);
foreach($Client_Type->childNodes as $Client){
if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance")
break;
}
if($Client->nodeName == "Person"){
echo "| Физическое лицо |
";
echo "| ФИО | ";
foreach($Client->childNodes as $FIO){
if($FIO->nodeName == "FIO"){
foreach($FIO->childNodes as $Person){
if($Person->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $Person->nodeValue);
}
if($Person->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
if($Person->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
}
}
}
echo " |
";
}
if($Client->nodeName == "Organization"){
$Name = $Client->childNodes->item(0);
echo "| Юридическое лицо |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
if($Client->nodeName == "Governance"){
$Name = $Client->childNodes->item(0);
echo "| Орган гос. власти |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
echo "
";
//Адрес
echo "Адрес";
if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0)))
echo "| ОКАТО | ".$Loc->nodeValue." | |
";
if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0)))
echo "| КЛАДР | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0)))
echo "| Индекс | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("District")->item(0)))
echo "| Район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("City")->item(0)))
echo "| Город | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0)))
echo "| Городской район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0)))
echo "| Сельсовет | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0)))
echo "| Населенный пункт | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0)))
echo "| Улица | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0)))
echo "| Дом | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0)))
echo "| Корпус | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0)))
echo "| Строение | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0)))
echo "| Квартира | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0)))
echo "| Иное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0)))
echo "| Неформализованное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
echo "
";
//Чертеж
echo "Чертеж";
$Entity_Spatial = $xml->getElementsByTagName("Entity_Spatial")->item(0);
$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
foreach($Entity_Spatial->childNodes as $Spatial_Element){
$first = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "Ordinate"){
if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$R = $Ordinate->getAttribute('R');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
if($R){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n";
}
}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
}
}
}
}
}
if(!$R){
$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n";
}
}
}
$out .= "ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w");
fwrite($fout, $out);
fclose($fout);
echo " |
";
echo "
";
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
//--------------------------------------------------------------------------------------------
//Сооружение
if(is_object($Obj_Type = $xml->getElementsByTagName("Construction")->item(0))){
if(is_object($Construction_Type = $xml->getElementsByTagName("New_Construction")->item(0))){
$Type = "New";
$CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0);
echo "| Сооружение, постановка на учет |
";
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){
$Meth['1'] = "Раздел";
$Meth['2'] = "Выдел";
$Meth['9'] = "Иное";
$Method = $xml->getElementsByTagName("Method")->item(0);
echo "| Метод образования | ".$Meth[$Method->nodeValue]." |
";
}
echo "| Кадастровый квартал | ".$CadNumPar->nodeValue." | Посмотреть на кадастровой карте |
";
}
if(is_object($Construction_Type = $xml->getElementsByTagName("Exist_Construction")->item(0))){
$Type = "Exist";
$CadNum = $xml->getElementsByTagName("Number_Register")->item(0);
echo "| Сооружение, уточнение |
";
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
echo "| Кадастровый номер | ".$CadNum->childNodes->item(0)->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){
$first = 0;
foreach($ParentNum->childNodes as $CadastralNum){
if($CadastralNum->nodeName == "CadastralNumber"){
if($first == 0){
echo "| Кадастровый номер земли | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
$first = 1;
}else{
echo " | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
}
}
}
if($Type == "New")
$Construction_Type = $xml->getElementsByTagName("New_Construction")->item(0);
if($Type == "Exist")
$Construction_Type = $xml->getElementsByTagName("Exist_Construction")->item(0);
foreach($Construction_Type->childNodes as $ConName){
if($ConName->nodeName == "Name")
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $ConName->nodeValue)." |
";
if($ConName->nodeName == "Assignation_Name")
echo "| Назначение | ".iconv('utf-8', 'windows-1251', $ConName->nodeValue)." |
";
if($ConName->nodeName == "Key_Parameter"){
$KeyParameter['01'] = 'Протяженность';
$KeyParameter['02'] = 'Глубина';
$KeyParameter['03'] = 'Объем';
$KeyParameter['04'] = 'Высота';
$KeyParameter['05'] = 'Площадь';
$KeyParameter['06'] = 'Площадь застройки';
$KeyPar = $ConName->getAttribute('Type');
echo "| Основная характеристика | ".$KeyParameter[$ConName->getAttribute('Type')].' - '.$ConName->getAttribute('Value')." |
";
}
if($ConName->nodeName == "Entity_Spatial"){
$Entity_Spatial = $ConName;
}
}
if(is_object($Floors = $xml->getElementsByTagName("Floors")->item(0))){
echo "| Этажность | ".$Floors->getAttribute('Floors')." |
";
echo "| Подземная этажность | ".$Floors->getAttribute('Underground_Floors')." |
";
}
echo "";
//Правообладатель
echo "Правообладатель";
$Client_Type = $xml->getElementsByTagName("Client")->item(0);
foreach($Client_Type->childNodes as $Client){
if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance")
break;
}
if($Client->nodeName == "Person"){
echo "| Физическое лицо |
";
echo "| ФИО | ";
foreach($Client->childNodes as $FIO){
if($FIO->nodeName == "FIO"){
foreach($FIO->childNodes as $Person){
if($Person->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $Person->nodeValue);
}
if($Person->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
if($Person->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
}
}
}
echo " |
";
}
if($Client->nodeName == "Organization"){
$Name = $Client->childNodes->item(0);
echo "| Юридическое лицо |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
if($Client->nodeName == "Governance"){
$Name = $Client->childNodes->item(0);
echo "| Орган гос. власти |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
echo "
";
//Адрес
echo "Адрес";
if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0)))
echo "| ОКАТО | ".$Loc->nodeValue." | |
";
if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0)))
echo "| КЛАДР | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0)))
echo "| Индекс | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("District")->item(0)))
echo "| Район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("City")->item(0)))
echo "| Город | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0)))
echo "| Городской район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0)))
echo "| Сельсовет | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0)))
echo "| Населенный пункт | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0)))
echo "| Улица | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0)))
echo "| Дом | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0)))
echo "| Корпус | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0)))
echo "| Строение | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0)))
echo "| Квартира | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0)))
echo "| Иное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0)))
echo "| Неформализованное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
echo "
";
//Чертеж
if(is_object($Entity_Spatial)){
echo "Чертеж";
$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
foreach($Entity_Spatial->childNodes as $Spatial_Element){
$first = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "Ordinate"){
if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$R = $Ordinate->getAttribute('R');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
if($R){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n";
}
}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
}
}
}
}
}
if($KeyPar == "05" || $KeyPar == "06"){
if(!$R){
$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n";
}
}
}
}
$out .= "ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w");
fwrite($fout, $out);
fclose($fout);
echo " |
";
echo "
";
}
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
//Незавершенка
if(is_object($Obj_Type = $xml->getElementsByTagName("Uncompleted_Construction")->item(0))){
if(is_object($Construction_Type = $xml->getElementsByTagName("New_Uncompleted_Construction")->item(0))){
$Type = "New";
$CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0);
echo "| Незавершенка, постановка на учет |
";
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){
$Meth['1'] = "Раздел";
$Meth['2'] = "Выдел";
$Meth['9'] = "Иное";
$Method = $xml->getElementsByTagName("Method")->item(0);
echo "| Метод образования | ".$Meth[$Method->nodeValue]." |
";
}
echo "| Кадастровый квартал | ".$CadNumPar->nodeValue." | Посмотреть на кадастровой карте |
";
}
if(is_object($Construction_Type = $xml->getElementsByTagName("Exist_Uncompleted_Construction")->item(0))){
$Type = "Exist";
$CadNum = $xml->getElementsByTagName("Number_Register")->item(0);
echo "| Незавершенка, уточнение |
";
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения здания | На месте! |
";
}else{
echo "| Схема расположения здания | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж контура здания | На месте! |
";
}else{
echo "| Чертеж контура здания | Отсутствует! |
";
}
}
}
echo "| Кадастровый номер | ".$CadNum->childNodes->item(0)->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){
$first = 0;
foreach($ParentNum->childNodes as $CadastralNum){
if($CadastralNum->nodeName == "CadastralNumber"){
if($first == 0){
echo "| Кадастровый номер земли | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
$first = 1;
}else{
echo " | ".$CadastralNum->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
}
}
}
if($Type == "New")
$Construction_Type = $xml->getElementsByTagName("New_Uncompleted_Construction")->item(0);
if($Type == "Exist")
$Construction_Type = $xml->getElementsByTagName("Exist_Uncompleted_Construction")->item(0);
foreach($Construction_Type->childNodes as $ConName){
if($ConName->nodeName == "Degree_Readiness")
echo "| Процент готовности | ".$ConName->nodeValue." |
";
if($ConName->nodeName == "Feature_Building"){
echo "| Является зданием |
";
$Feature = "Building";
foreach($ConName->childNodes as $Building){
if($Building->nodeName == "Area"){
echo "| Площадь | ".$Building->nodeValue." |
";
}
}
}
if($ConName->nodeName == "Feature_Construction"){
echo "| Является сооружением |
";
$Feature = "Construction";
foreach($ConName->childNodes as $Construction){
if($Construction->nodeName == "Name"){
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Construction->nodeValue)." |
";
}
if($Construction->nodeName == "Assignation_Name"){
echo "| Назначение | ".iconv('utf-8', 'windows-1251', $Construction->nodeValue)." |
";
}
if($Construction->nodeName == "Key_Parameter"){
$KeyParameter['01'] = 'Протяженность';
$KeyParameter['02'] = 'Глубина';
$KeyParameter['03'] = 'Объем';
$KeyParameter['04'] = 'Высота';
$KeyParameter['05'] = 'Площадь';
$KeyParameter['06'] = 'Площадь застройки';
echo "| Основная характеристика | ".$KeyParameter[$Construction->getAttribute('Type')].' - '.$Construction->getAttribute('Value')." |
";
}
}
}
}
if(is_object($Floors = $xml->getElementsByTagName("Floors")->item(0))){
echo "| Этажность | ".$Floors->getAttribute('Floors')." |
";
echo "| Подземная этажность | ".$Floors->getAttribute('Underground_Floors')." |
";
}
echo "";
//Правообладатель
echo "Правообладатель";
$Client_Type = $xml->getElementsByTagName("Client")->item(0);
foreach($Client_Type->childNodes as $Client){
if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance")
break;
}
if($Client->nodeName == "Person"){
echo "| Физическое лицо |
";
echo "| ФИО | ";
foreach($Client->childNodes as $FIO){
if($FIO->nodeName == "FIO"){
foreach($FIO->childNodes as $Person){
if($Person->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $Person->nodeValue);
}
if($Person->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
if($Person->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
}
}
}
echo " |
";
}
if($Client->nodeName == "Organization"){
$Name = $Client->childNodes->item(0);
echo "| Юридическое лицо |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
if($Client->nodeName == "Governance"){
$Name = $Client->childNodes->item(0);
echo "| Орган гос. власти |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
echo "
";
//Адрес
echo "Адрес";
if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0)))
echo "| ОКАТО | ".$Loc->nodeValue." | |
";
if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0)))
echo "| КЛАДР | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0)))
echo "| Индекс | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("District")->item(0)))
echo "| Район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("City")->item(0)))
echo "| Город | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0)))
echo "| Городской район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0)))
echo "| Сельсовет | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0)))
echo "| Населенный пункт | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0)))
echo "| Улица | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0)))
echo "| Дом | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0)))
echo "| Корпус | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0)))
echo "| Строение | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0)))
echo "| Квартира | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0)))
echo "| Иное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0)))
echo "| Неформализованное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
echo "
";
//Чертеж
$Entity_Spatial = $xml->getElementsByTagName("Entity_Spatial")->item(0);
if(is_object($Entity_Spatial)){
echo "Чертеж";
$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
foreach($Entity_Spatial->childNodes as $Spatial_Element){
$first = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "Ordinate"){
if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$R = $Ordinate->getAttribute('R');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
if($R){
$out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n";
}
}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
}
}
}
}
}
if($Feature == "Building" && !$R){
$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n";
}
}
}
$out .= "ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w");
fwrite($fout, $out);
fclose($fout);
echo " |
";
echo "
";
}
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
//Помещение
if(is_object($Obj_Type = $xml->getElementsByTagName("Flat")->item(0))){
if(is_object($Flat_Type = $xml->getElementsByTagName("New_Flat")->item(0))){
$Type = "New";
$CadNumPar = $xml->getElementsByTagName("CadastralNumberOKS")->item(0);
echo "| Помещение, постановка на учет |
";
$NewFlats = $xml->getElementsByTagName("New_Flat")->item(0);
foreach($NewFlats->childNodes as $NewFlat){
if($NewFlat->nodeName == "Levels"){
foreach($NewFlat->childNodes as $Levels){
if($Levels->nodeName == "Level"){
$LevelNum = $Levels->getAttribute('Number');
foreach($Levels->childNodes as $Level){
if($Level->nodeName == "Position"){
foreach($Level->childNodes as $Position){
if($Position->nodeName == "Plans"){
foreach($Position->childNodes as $Plans){
if($Plans->nodeName == "Plan"){
$FileGeo = $Plans->getAttribute('File');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(".".$files[$i], $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж ".$LevelNum." этажа | На месте! |
";
}else{
echo "| Чертеж ".$LevelNum." этажа | Отсутствует! |
";
}
}
}
}
}
}
}
}
}
}
/*if($NewFlat->nodeName == "Position"){
echo "| 1111 |
";
foreach($NewFlat->childNodes as $Position){
if($Position->nodeName == "Plans"){
foreach($Position->childNodes as $Plans){
if($Plans->nodeName == "Plan"){
$FileGeo = $Plans->getAttribute('File');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж помещения | На месте! |
";
}else{
echo "| Чертеж помещения | Отсутствует! |
";
}
}
}
}
}
}*/
}
if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){
$Meth['1'] = "Раздел";
$Meth['2'] = "Выдел";
$Meth['9'] = "Иное";
$Method = $xml->getElementsByTagName("Method")->item(0);
echo "| Метод образования | ".$Meth[$Method->nodeValue]." |
";
}
echo "| Кадастровый номер здания | ".$CadNumPar->nodeValue." | Посмотреть на кадастровой карте | Проверить на росреестре |
";
}
if(is_object($Flat_Type = $xml->getElementsByTagName("Exist_Flat")->item(0))){
$Type = "Exist";
$CadNum = $xml->getElementsByTagName("Number_Register")->item(0);
echo "| Помещение, уточнение |
";
$ExistFlats = $xml->getElementsByTagName("Exist_Flat")->item(0);
foreach($ExistFlats->childNodes as $ExistFlat){
if($ExistFlat->nodeName == "Levels"){
foreach($ExistFlat->childNodes as $Levels){
if($Levels->nodeName == "Level"){
$LevelNum = $Levels->getAttribute('Number');
foreach($Levels->childNodes as $Level){
if($Level->nodeName == "Position"){
foreach($Level->childNodes as $Position){
if($Position->nodeName == "Plans"){
foreach($Position->childNodes as $Plans){
if($Plans->nodeName == "Plan"){
$FileGeo = $Plans->getAttribute('File');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(".".$files[$i], $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж ".$LevelNum." этажа | На месте! |
";
}else{
echo "| Чертеж ".$LevelNum." этажа | Отсутствует! |
";
}
}
}
}
}
}
}
}
}
}
/*if($NewFlat->nodeName == "Position"){
echo "| 1111 |
";
foreach($NewFlat->childNodes as $Position){
if($Position->nodeName == "Plans"){
foreach($Position->childNodes as $Plans){
if($Plans->nodeName == "Plan"){
$FileGeo = $Plans->getAttribute('File');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if($files[$i] == $FileGeo){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж помещения | На месте! |
";
}else{
echo "| Чертеж помещения | Отсутствует! |
";
}
}
}
}
}
}*/
}
$CadNumFlat = $xml->getElementsByTagName("CadastralNumber")->item(0);
echo "| Кадастровый номер | ".$CadNumFlat->nodeValue." | Проверить на росреестре |
";
$CadNumPar = $xml->getElementsByTagName("CadastralNumberOKS")->item(0);
echo "| Кадастровый номер здания | ".$CadNumPar->nodeValue." | Проверить на росреестре |
";
}
$PrevNums = $xml->getElementsByTagName("Cad_Number_Prev")->item(0);
if(is_object($PrevNums)){
$first = 0;
foreach($PrevNums->childNodes as $PrevNum){
if($PrevNum->nodeName == "CadastralNumber"){
if($first == 0){
echo "| Объект, из которого образовано помещение | ".$PrevNum->nodeValue." | Проверить на росреестре |
";
$first = 1;
}else{
echo " | ".$PrevNum->nodeValue." | Проверить на росреестре |
";
}
}
}
}
$Area = $xml->getElementsByTagName("Area")->item(0);
echo "| Площадь | ".$Area->nodeValue." |
";
echo "";
//Инвентарные номера
$OldNums = $xml->getElementsByTagName("Old_Numbers")->item(0);
if(is_object($OldNums)){
echo "Инвентарные номера| № п/п | Тип | Номер | Дата присвоения | Организация | ";
$i = 1;
$NumType["01"] = "Инвентарный";
$NumType["02"] = "Условный";
$NumType["03"] = "Кадастровый";
$NumType["99"] = "Иной";
foreach($OldNums->childNodes as $OldNum){
if($OldNum->nodeName == "Old_Number"){
echo "";
echo "| ".$i." | ";
echo "".$NumType[$OldNum->getAttribute('Type')]." | ";
echo "".$OldNum->getAttribute('Number')." | ";
echo "".$OldNum->getAttribute('Date')." | ";
echo "".iconv('utf-8', 'windows-1251', $OldNum->getAttribute('Organ'))." | ";
echo "
";
}
}
echo "
";
}
//Правообладатель
echo "Правообладатель";
$Client_Type = $xml->getElementsByTagName("Client")->item(0);
foreach($Client_Type->childNodes as $Client){
if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance")
break;
}
if($Client->nodeName == "Person"){
echo "| Физическое лицо |
";
echo "| ФИО | ";
foreach($Client->childNodes as $FIO){
if($FIO->nodeName == "FIO"){
foreach($FIO->childNodes as $Person){
if($Person->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $Person->nodeValue);
}
if($Person->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
if($Person->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
}
}
}
echo " |
";
}
if($Client->nodeName == "Organization"){
$Name = $Client->childNodes->item(0);
echo "| Юридическое лицо |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
if($Client->nodeName == "Governance"){
$Name = $Client->childNodes->item(0);
echo "| Орган гос. власти |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
echo "
";
//Адрес
echo "Адрес";
if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0)))
echo "| ОКАТО | ".$Loc->nodeValue." | |
";
if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0)))
echo "| КЛАДР | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0)))
echo "| Индекс | ".$Loc->nodeValue." |
";
if(is_object($Loc = $xml->getElementsByTagName("District")->item(0)))
echo "| Район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("City")->item(0)))
echo "| Город | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0)))
echo "| Городской район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0)))
echo "| Сельсовет | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0)))
echo "| Населенный пункт | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0)))
echo "| Улица | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0)))
echo "| Дом | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0)))
echo "| Корпус | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0)))
echo "| Строение | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0)))
echo "| Квартира | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0)))
echo "| Иное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0)))
echo "| Неформализованное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
echo "
";
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
}
if($_POST['Type'] == "MP"){
$flag = 0;
if(isset($_POST['upload'])){
//Список разрешенных файлов
$whitelist = array(".zip");
$data = array();
$error = true;
//Проверяем разрешение файла
foreach ($whitelist as $item) {
if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
}
//если нет ошибок, грузим файл
if(!$error){
$folder = 'upload';//директория в которую будет загружен файл
$uploadedFile = "upload/".$_FILES['userfile']['name'];
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
$data = $_FILES['userfile'];
$flag = 1;
echo "Файл успешно загружен! ".$data['name'];
}
else {
echo "Во время загрузки файла произошла ошибка";
}
}
else {
echo "Файл не загружен ".$_FILES['userfile']['tmp_name'];
}
}
else{
echo 'Вы загружаете запрещенный тип файла';
}
}
echo "Структура архива:
|
";
if($flag == 1){
$flag1 = 0;
$zip = new ZipArchive;
$filenames = array();
$files = array();
if ($zip->open('upload/'.$data['name']) === true){
for($i = 0; $i < $zip->numFiles; $i++){
$files[$i] = "/".$zip->getNameIndex($i);
$folder = 0;
if(strpos($zip->getNameIndex($i), ".xml") !== false){
echo " | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".dwg") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".xls") !== false || strpos($zip->getNameIndex($i), ".xlsx") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".tpo") !== false){
echo "
 | ";
$folder = 1;
}
if(strpos($zip->getNameIndex($i), ".jpg") !== false){
echo "
 | ";
$folder = 1;
}
if($folder == 0){
echo "
 | ";
}
echo "".iconv("cp866", "windows-1251", $zip->getNameIndex($i))." |
";
if(strpos($zip->getNameIndex($i), ".xml") !== false && strpos($zip->getNameIndex($i), ".sig") === false){
$filenames[$i] = $zip->getNameIndex($i);
$fileindex = $i;
}
}
$NumFiles = $i;
echo "
";
echo "";
if(!is_dir("unzip/".$data['name']))
mkdir("unzip/".$data['name'], 0777);
$zip->extractTo("unzip/".$data['name']);
$zip->close();
echo "Читаю файл ".$filenames[$fileindex]."
";
$DOM = new DOMDocument();
$DOM->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]);
if (!$DOM->schemaValidate('C:\Разработка\doc_V04_STD_MP\V04_STD_MP\STD_MP.xsd')) {
print 'Файл не прошёл валидацию!';
libxml_display_errors();
}else{
echo "Файл валидный!";
}
}else{
echo 'А архивчик-то, битый!';
$flag1 = 1;
}
}
echo " |
";
$xml = new DOMDocument();
$xml->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]);
$xml->encoding = 'utf-8';
$ParcelMethod["1"] = "Выдел";
$ParcelMethod["2"] = "Раздел";
$ParcelMethod["3"] = "Раздел с измененным земельным участком";
$ParcelMethod["4"] = "Перераспределение";
$ParcelMethod["5"] = "Образование из земель";
$ParcelMethod["6"] = "Объединение";
echo "Чертежи";
$Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема геодезических построений | На месте! |
";
}else{
echo "| Схема геодезических построений | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Scheme_Disposition_Parcels")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Схема расположения земельных участков | На месте! |
";
}else{
echo "| Схема расположения земельных участков | Отсутствует! |
";
}
}
}
$Scheme = $xml->getElementsByTagName("Diagram_Parcels_SubParcels")->item(0);
foreach($Scheme->childNodes as $Geodesic){
if($Geodesic->nodeName == "AppliedFile"){
$FileGeo = $Geodesic->getAttribute('Name');
$SchemeFlag = 0;
for($i = 0; $i < $NumFiles; $i++){
if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){
$SchemeFlag = 1;
}
}
if($SchemeFlag){
echo "| Чертеж земельных участков | На месте! |
";
}else{
echo "| Чертеж земельных участков | Отсутствует! |
";
}
}
}
echo "
";
$Contractor = $xml->getElementsByTagName("Contractor")->item(0);
foreach($Contractor->childNodes as $Cad_Eng){
if($Cad_Eng->nodeName == "FIO"){
$Eng_FIO = "";
foreach($Cad_Eng->childNodes as $FIO){
if($FIO->nodeName == "Surname"){
$Eng_FIO .= $FIO->nodeValue." ";
}
if($FIO->nodeName == "First"){
$Eng_FIO .= $FIO->nodeValue." ";
}
if($FIO->nodeName == "Patronymic"){
$Eng_FIO .= $FIO->nodeValue;
}
}
}
}
echo "Кадастровый инженер| ".iconv('utf-8', 'windows-1251', $Eng_FIO)." |
";
if(is_object($Purpose = $xml->getElementsByTagName("Purpose")->item(0))){
$Purpose = $xml->getElementsByTagName("Purpose")->item(0);
echo "Цель кадастровых работ| ".iconv('utf-8', 'windows-1251', $Purpose->nodeValue)." |
";
}
$Reason = $xml->getElementsByTagName("Reason")->item(0);
echo "Вид кадастровых работ| ".iconv('utf-8', 'windows-1251', $Reason->nodeValue)." |
";
echo "Заказчик работ";
$Client_Type = $xml->getElementsByTagName("Client")->item(0);
foreach($Client_Type->childNodes as $Client){
if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance")
break;
}
if($Client->nodeName == "Person"){
echo "| Физическое лицо |
";
echo "| ФИО | ";
foreach($Client->childNodes as $FIO){
if($FIO->nodeName == "FIO"){
foreach($FIO->childNodes as $Person){
if($Person->nodeName == "Surname"){
echo iconv('utf-8', 'windows-1251', $Person->nodeValue);
}
if($Person->nodeName == "First"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
if($Person->nodeName == "Patronymic"){
echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue);
}
}
}
}
echo " |
";
}
if($Client->nodeName == "Organization"){
$Name = $Client->childNodes->item(0);
echo "| Юридическое лицо |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
if($Client->nodeName == "Governance"){
$Name = $Client->childNodes->item(0);
echo "| Орган гос. власти |
";
echo "| Наименование | ".iconv('utf-8', 'windows-1251', $Name->nodeValue)." |
";
$Agent = $Client->childNodes->item(1);
echo "| ФИО представителя | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)." |
";
echo "| Должность | ".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)." |
";
}
echo "
";
//Пункты
echo "Пункты ОМС";
$Geo_Bases = $xml->getElementsByTagName("Geodesic_Bases")->item(0);
if(is_object($Geo_Bases)){
echo "| Номер | Тип пункта | Класс сети | Коорд. X | Коорд. Y |
";
foreach($Geo_Bases->childNodes as $Geo_Base){
if($Geo_Base->nodeName == "Geodesic_Base"){
echo "";
foreach($Geo_Base->childNodes as $Punkt){
if($Punkt->nodeName == "PName"){
echo "| ".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)." | ";
}
if($Punkt->nodeName == "PKind"){
echo "".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)." | ";
}
if($Punkt->nodeName == "PKlass"){
echo "".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)." | ";
}
if($Punkt->nodeName == "OrdX"){
echo "".$Punkt->nodeValue." | ";
}
if($Punkt->nodeName == "OrdY"){
echo "".$Punkt->nodeValue." |
";
}
}
echo "";
}
}
}else{
echo "| Пунктов нет, когда завезут - не знаем! |
";
}
echo "
";
//Документы
echo "Документы";
echo "| Наименование | Серия | Номер | Дата |
";
$Documents = $xml->getElementsByTagName("Documents")->item(0);
foreach($Documents->childNodes as $Document){
if($Document->nodeName == "Document"){
echo "";
$Name = "";
$Series = "";
$Number = "";
$Date = "";
foreach($Document->childNodes as $Doc){
if($Doc->nodeName == "Name"){
$Name = iconv('utf-8', 'windows-1251', $Doc->nodeValue);
}
if($Doc->nodeName == "Series"){
$Series = iconv('utf-8', 'windows-1251', $Doc->nodeValue);
}
if($Doc->nodeName == "Number"){
$Number = iconv('utf-8', 'windows-1251', $Doc->nodeValue);
}
if($Doc->nodeName == "Date"){
$Date = iconv('utf-8', 'windows-1251', $Doc->nodeValue);
}
}
echo "| ".$Name." | ".$Series." | ".$Number." | ".$Date." | ";
echo "
";
}
}
echo "
";
$Specify = 0;
if(is_object($Obj_Type = $xml->getElementsByTagName("FormParcels")->item(0))){
$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
$i = 0;
$Obj_Type = $xml->getElementsByTagName("FormParcels")->item(0);
$Method = $Obj_Type->getAttribute('Method');
foreach($Obj_Type->childNodes as $Parcels){
if($Parcels->nodeName == "NewParcel"){
$i++;
echo "Вновь образованный участок ".$i."";
echo "| Способ образования | ".$ParcelMethod[$Method]." |
";
echo "| Обозначение | ".iconv('utf-8', 'windows-1251', $Parcels->getAttribute('Definition'))." |
";
foreach($Parcels->childNodes as $Parcel){
if($Parcel->nodeName == "CadastralBlock"){
$CadBlock = $Parcel->nodeValue;
$Block = explode(":", $CadBlock);
$flag = 0;
if(!$Block[2] || $Block[3]){
$flag = 1;
}
if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){
$flag = 1;
}
if($flag){
echo "| Кадастровый квартал | ".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)." |
";
}else{
echo "| Кадастровый квартал | ".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)." |
";
}
}
if($Parcel->nodeName == "Providing_Pass_CadastralNumbers"){
$flag = 1;
foreach($Parcel->childNodes as $Providing){
if($Providing->nodeName == "CadastralNumber"){
if($flag){
echo "| Доступ | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
$flag = 0;
}else{
echo " | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
}
}
if($Providing->nodeName == "Definition"){
if($flag){
echo "| Доступ | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
$flag = 0;
}else{
echo " | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
}
}
if($Providing->nodeName == "Other"){
if($flag){
echo "| Доступ | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
$flag = 0;
}else{
echo " | ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)." |
";
}
}
}
}
if($Parcel->nodeName == "Prev_CadastralNumbers"){
$j = 0;
foreach($Parcel->childNodes as $PrevNums){
if($PrevNums->nodeName == "CadastralNumber"){
$CadBlock = $PrevNums->nodeValue;
$Block = explode(":", $CadBlock);
$flag = 0;
if(!$Block[3] || $Block[4]){
$flag = 1;
}
if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){
$flag = 1;
}
if($j == 1){
if($flag){
echo " | ".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)." | Посмотреть на кадастровой карте |
";
}else{
echo " | ".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)." | Посмотреть на кадастровой карте |
";
}
}
if($j == 0){
$j = 1;
if($flag){
echo "| Участки, из которых образован | ".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)." | Посмотреть на кадастровой карте |
";
}else{
echo "| Участки, из которых образован | ".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)." | Посмотреть на кадастровой карте |
";
}
}
}
}
}
if($Parcel->nodeName == "Area"){
foreach($Parcel->childNodes as $Area){
if($Area->nodeName == "Area"){
echo "
Площадь";
echo "| Значение площади | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
}
if($Area->nodeName == "Innccuracy"){
echo "| Погрешность вычисления | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
echo "
";
}
}
}
if($Parcel->nodeName == "Category"){
echo "Категория земель";
$Category["003001000000"] = "Земли сельскохозяйственного назначения";
$Category["003002000000"] = "Земли населенных пунктов";
$Category["003003000000"] = "Земли промышленности, энергетики, транспорта, связи, радиовещания, телевидения, информатики, земли для обеспечения космической деятельности, земли обороны, безопасности и земли иного специального назначения";
$Category["003004000000"] = "Земли особо охраняемых территорий и объектов";
$Category["003005000000"] = "Земли лесного фонда";
$Category["003006000000"] = "Земли водного фонда";
$Category["003007000000"] = "Земли запаса";
$Category["003008000000"] = "Категория не установлена";
echo "| ".$Category[iconv('utf-8', 'windows-1251', $Parcel->getAttribute('Category'))]." |
";
}
if($Parcel->nodeName == "Utilization"){
echo "Использование участка";
$Util = $Parcel->getAttribute('Utilization');
$f = fopen("dUtilizations.csv", "r");
$flag = 0;
while(!feof($f)){
$csv = fgetcsv($f, 1000, ';');
if($csv[0] == $Util){
$flag = 1;
$Utilization = $csv[1];
break;
}
}
if($flag == 0){
$Utilization = "Не найдено";
}
fclose($f);
echo "| По справочнику | ".iconv('utf-8', 'windows-1251', $Utilization)." |
";
echo "| По документу | ".iconv('utf-8', 'windows-1251', $Parcel->getAttribute('ByDoc'))." |
";
}
if($Parcel->nodeName == "Entity_Spatial"){
$Contours = $Parcel;
$Simple = 1;
}
if($Parcel->nodeName == "Contours"){
$Contours = $Parcel;
$Simple = 0;
}
if($Parcel->nodeName == "Location"){
$Address = $Parcel;
}
}
echo "Адрес";
foreach($Address->childNodes as $Loc){
if($Loc->nodeName == "Code_OKATO")
echo "| ОКАТО | ".$Loc->nodeValue." | |
";
if($Loc->nodeName == "Code_KLADR")
echo "| КЛАДР | ".$Loc->nodeValue." |
";
if($Loc->nodeName == "Postal_Code")
echo "| Индекс | ".$Loc->nodeValue." |
";
if($Loc->nodeName == "District")
echo "| Район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "City")
echo "| Город | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Urban_District")
echo "| Городской район | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Soviet_Village")
echo "| Сельсовет | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Locality")
echo "| Населенный пункт | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Street")
echo "| Улица | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Level1")
echo "| Дом | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Level2")
echo "| Корпус | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Level3")
echo "| Строение | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Apartment")
echo "| Квартира | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))." | ".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))." |
";
if($Loc->nodeName == "Other")
echo "| Иное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
if($Loc->nodeName == "Note")
echo "| Неформализованное описание | ".iconv('utf-8', 'windows-1251', $Loc->nodeValue)." |
";
}
echo "
";
if($Simple == 0){
echo "Контура многоконтурного участка";
echo "
";
$ContourNum = 1;
$FirstCont = 0;
//$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
foreach($Contours->childNodes as $Contour){
if($Contour->nodeName == "NewContour"){
echo "Контур ".$ContourNum."";
foreach($Contour->childNodes as $Cont){
if($Cont->nodeName == "Area"){
foreach($Cont->childNodes as $Area){
if($Area->nodeName == "Area"){
echo "| Значение площади | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
}
if($Area->nodeName == "Innccuracy"){
echo "| Погрешность вычисления | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
echo "
";
}
}
}
if($Cont->nodeName == "Entity_Spatial"){
echo "Координаты контура";
echo "| № точки | X | Y | Погрешность |
";
$ContNum = 0;
foreach($Cont->childNodes as $Spatial_Element){
$first = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n";
if($ContNum){
echo " | Вырезаемая часть ".$ContNum." | ";
}
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){
//if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
$out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n";
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
echo "
| ".$pref.$num." | ".$firstpointX." | ".$firstpointY." | ".$delta." |
";
/*}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
echo "| ".$pref.$num." | ".$lastX." | ".$lastY." | ".$delta." |
";
}*/
}
}
}
}
$out .= "SEQEND\n 8\n0\n 0\n";
//$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n";
$ContNum++;
}
}
echo "
";
}
}
$ContourNum++;
}
}
/*
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
*/
echo "";
}else{
echo "Контур участка";
if($Simple == 0){
echo "| Участкок имеет несколько кунтуров, но не описан как многоконтурный. |
";
}else{
echo "| № точки | X | Y | Погрешность |
";
//$Contours = $xml->getElementsByTagName("Entity_Spatial")->item(0);
$ContNum = 0;
foreach($Contours->childNodes as $Spatial_Element){
$first = 0;
$FirstCont = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n";
if($ContNum){
echo " | Вырезаемая часть ".$ContNum." | ";
}
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){
//if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
$out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n";
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
echo "
| ".$pref.$num." | ".$firstpointX." | ".$firstpointY." | ".$delta." |
";
/*}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
echo "| ".$pref.$num." | ".$lastX." | ".$lastY." | ".$delta." |
";
}*/
}
}
}
}
$out .= "SEQEND\n 8\n0\n 0\n";
//$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n";
$ContNum++;
}
}
/*
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
*/
echo "
";
echo "Чертеж";
echo " |
";
}
echo "
";
}
echo "
";
}
if($Parcels->nodeName == "SpecifyRelatedParcel"){
$Specify++;
$CadNum = $Parcels->getAttribute('CadastralNumber');
echo "Уточнение смежного участка ".$CadNum."";
echo "";
echo "| Старый № точки | ";
echo "Новый № точки | ";
echo "Старая X | ";
echo "Старая Y | ";
echo "Новая X | ";
echo "Новая Y | ";
echo "
";
$oldflag = 0;
$newflag = 0;
$oldvertex = "";
$newvertex = "";
foreach($Parcels->childNodes as $Border){
if($Border->nodeName == "ChangeBorder"){
$OldNum = "";
$OldX = "";
$OldY = "";
$NewNum = "";
$NewX = "";
$NewY = "";
$flag = 0;
foreach($Border->childNodes as $Point){
if($Point->nodeName == "OldOrdinate"){
$flag = 1;
$oldflag = 1;
$OldNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint');
$OldX = $Point->getAttribute('X');
$OldY = $Point->getAttribute('Y');
$oldvertex .= "VERTEX\n 8\n0\n 10\n".$OldY."\n 20\n".$OldX."\n 62\n1\n 0\n";
}
if($Point->nodeName == "NewOrdinate"){
$flag = 1;
$newflag = 1;
$NewNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint');
$NewX = $Point->getAttribute('X');
$NewY = $Point->getAttribute('Y');
$newvertex .= "VERTEX\n 8\n0\n 10\n".$NewY."\n 20\n".$NewX."\n 62\n3\n 0\n";
}
}
if($flag){
echo "";
echo "| ".iconv('utf-8', 'windows-1251', $OldNum)." | ";
echo "".iconv('utf-8', 'windows-1251', $NewNum)." | ";
echo "".$OldX." | ";
echo "".$OldY." | ";
echo "".$NewX." | ";
echo "".$NewY." | ";
echo "
";
}
}
}
echo "
";
if($oldflag){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n1\n 0\n";
$out .= $oldvertex;
$out .= "SEQEND\n 8\n0\n 0\n";
}
if($newflag){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n3\n 0\n";
$out .= $newvertex;
$out .= "SEQEND\n 8\n0\n 0\n";
}
}
}
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
if(is_object($Obj_Type = $xml->getElementsByTagName("SpecifyParcel")->item(0))){
$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
$i = 0;
$Obj_Type = $xml->getElementsByTagName("SpecifyParcel")->item(0);
foreach($Obj_Type->childNodes as $Parcels){
if($Parcels->nodeName == "ExistParcel"){
$i++;
echo "Уточняемый участок ".$i."";
$CadNumber = $Parcels->getAttribute('CadastralNumber');
$Block = explode(":", $CadNumber);
$flag = 0;
if(!$Block[3] || $Block[4]){
$flag = 1;
}
if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){
$flag = 1;
}
if($flag){
echo "| Кадастровый номер | ".iconv('utf-8', 'windows-1251', $CadNumber)." | Посмотреть на кадастровой карте |
";
}else{
echo "| Кадастровый номер | ".iconv('utf-8', 'windows-1251', $CadNumber)." | Посмотреть на кадастровой карте |
";
}
foreach($Parcels->childNodes as $Parcel){
if($Parcel->nodeName == "CadastralBlock"){
$CadBlock = $Parcel->nodeValue;
$Block = explode(":", $CadBlock);
$flag = 0;
if(!$Block[2] || $Block[3]){
$flag = 1;
}
if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){
$flag = 1;
}
if($flag){
echo "| Кадастровый квартал | ".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)." |
";
}else{
echo "| Кадастровый квартал | ".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)." |
";
}
}
if($Parcel->nodeName == "Area"){
foreach($Parcel->childNodes as $Area){
if($Area->nodeName == "Area"){
echo "
Площадь";
echo "| Значение площади | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
}
if($Area->nodeName == "Innccuracy"){
echo "| Погрешность вычисления | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
echo "
";
}
}
}
if($Parcel->nodeName == "Entity_Spatial"){
$Contours = $Parcel;
$Simple = 1;
}
if($Parcel->nodeName == "Contours"){
$Contours = $Parcel;
$Simple = 0;
}
}
if($Simple == 0){
echo "Контура многоконтурного участка";
echo "
";
$ContourNum = 1;
$FirstCont = 0;
//$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
foreach($Contours->childNodes as $Contour){
if($Contour->nodeName == "NewContour"){
echo "Контур ".$ContourNum."";
foreach($Contour->childNodes as $Cont){
if($Cont->nodeName == "Area"){
foreach($Cont->childNodes as $Area){
if($Area->nodeName == "Area"){
echo "| Значение площади | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
}
if($Area->nodeName == "Innccuracy"){
echo "| Погрешность вычисления | ".iconv('utf-8', 'windows-1251', $Area->nodeValue)." |
";
echo "
";
}
}
}
if($Cont->nodeName == "Entity_Spatial"){
echo "Координаты контура";
echo "| № точки | X | Y | Погрешность |
";
$ContNum = 0;
foreach($Cont->childNodes as $Spatial_Element){
$first = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n";
if($ContNum){
echo " | Вырезаемая часть ".$ContNum." | ";
}
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){
//if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
$out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n";
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
echo "
| ".$pref.$num." | ".$firstpointX." | ".$firstpointY." | ".$delta." |
";
/*}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
echo "| ".$pref.$num." | ".$lastX." | ".$lastY." | ".$delta." |
";
}*/
}
}
}
}
$out .= "SEQEND\n 8\n0\n 0\n";
//$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n";
$ContNum++;
}
}
echo "
";
}
}
$ContourNum++;
}
}
/*
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
*/
echo "";
}else{
echo "Контур участка";
echo "| № точки | X | Y | Погрешность |
";
//$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
//$Contours = $xml->getElementsByTagName("Entity_Spatial")->item(0);
$ContNum = 0;
foreach($Contours->childNodes as $Spatial_Element){
$first = 0;
$FirstCont = 0;
if($Spatial_Element->nodeName == "Spatial_Element"){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n";
if($ContNum){
echo " | Вырезаемая часть ".$ContNum." | ";
}
foreach($Spatial_Element->childNodes as $Spelement_Unit){
if($Spelement_Unit->nodeName == "Spelement_Unit"){
foreach($Spelement_Unit->childNodes as $Ordinate){
if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){
//if($first == 0){
$firstpointX = $Ordinate->getAttribute('X');
$firstpointY = $Ordinate->getAttribute('Y');
$firstX = $firstpointX;
$firstY = $firstpointY;
$first = 1;
if($FirstCont == 0){
$circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n";
$FirstCont = 1;
}
$out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n";
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
echo "
| ".$pref.$num." | ".$firstpointX." | ".$firstpointY." | ".$delta." |
";
/*}else{
$lastX = $Ordinate->getAttribute('X');
$lastY = $Ordinate->getAttribute('Y');
$delta = $Ordinate->getAttribute('Delta_Geopoint');
$num = $Ordinate->getAttribute('Num_Geopoint');
$pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref'));
$out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n";
$firstpointX = $lastX;
$firstpointY = $lastY;
echo "| ".$pref.$num." | ".$lastX." | ".$lastY." | ".$delta." |
";
}*/
}
}
}
}
$out .= "SEQEND\n 8\n0\n 0\n";
//$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n";
$ContNum++;
}
}
/*
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
*/
echo "
";
echo "";
}
echo "
";
}
if($Parcels->nodeName == "SpecifyRelatedParcel"){
$Specify++;
$CadNum = $Parcels->getAttribute('CadastralNumber');
echo "Уточнение смежного участка ".$CadNum."";
echo "";
echo "| Старый № точки | ";
echo "Новый № точки | ";
echo "Старая X | ";
echo "Старая Y | ";
echo "Новая X | ";
echo "Новая Y | ";
echo "
";
$oldflag = 0;
$newflag = 0;
$oldvertex = "";
$newvertex = "";
foreach($Parcels->childNodes as $Border){
if($Border->nodeName == "ChangeBorder"){
$OldNum = "";
$OldX = "";
$OldY = "";
$NewNum = "";
$NewX = "";
$NewY = "";
$flag = 0;
foreach($Border->childNodes as $Point){
if($Point->nodeName == "OldOrdinate"){
$flag = 1;
$oldflag = 1;
$OldNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint');
$OldX = $Point->getAttribute('X');
$OldY = $Point->getAttribute('Y');
$oldvertex .= "VERTEX\n 8\n0\n 10\n".$OldY."\n 20\n".$OldX."\n 62\n1\n 0\n";
}
if($Point->nodeName == "NewOrdinate"){
$flag = 1;
$newflag = 1;
$NewNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint');
$NewX = $Point->getAttribute('X');
$NewY = $Point->getAttribute('Y');
$newvertex .= "VERTEX\n 8\n0\n 10\n".$NewY."\n 20\n".$NewX."\n 62\n3\n 0\n";
}
}
if($flag){
echo "";
echo "| ".iconv('utf-8', 'windows-1251', $OldNum)." | ";
echo "".iconv('utf-8', 'windows-1251', $NewNum)." | ";
echo "".$OldX." | ";
echo "".$OldY." | ";
echo "".$NewX." | ";
echo "".$NewY." | ";
echo "
";
}
}
}
echo "
";
if($oldflag){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n1\n 0\n";
$out .= $oldvertex;
$out .= "SEQEND\n 8\n0\n 0\n";
}
if($newflag){
$out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n3\n 0\n";
$out .= $newvertex;
$out .= "SEQEND\n 8\n0\n 0\n";
}
}
}
$out .= $circle."ENDSEC\n 0\nEOF";
$fout = fopen("unzip/".$data['name'].$i.".dxf", "w");
fwrite($fout, $out);
fclose($fout);
echo "Заключение кадастрового инженера";
$Conclusion = $xml->getElementsByTagName("Conclusion")->item(0);
$concl = $Conclusion->nodeValue;
echo "| ".iconv('utf-8', 'windows-1251', $concl)." |
";
echo "
";
}
}
?>