<?php
header('Content-Type: application/json');
ini_set('memory_limit','5024M');
set_time_limit(0);
require("dl.php");
$datos = '';
if($_REQUEST['datos']){$datos = $_REQUEST['datos'];}




$fecha_nombre_archivo = dl_fecha::dl_ahora_texto_nombre_archivo();
$nombre_archivo = "referencias/Shapefile/conexiones" . $fecha_nombre_archivo;
$nombre_achivo_con_extension = $nombre_archivo . ".shp";

$nombre_prj = $nombre_archivo . ".prj";
$archivo_prj = fopen($nombre_prj,"w"); 
$renglon = 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]';
fwrite($archivo_prj,$renglon);
fclose($archivo_prj);


require_once('referencias/Shapefile/ShapefileAutoloader.php');
Shapefile\ShapefileAutoloader::register();
use Shapefile\Shapefile;
use Shapefile\ShapefileException;
use Shapefile\ShapefileWriter;
use Shapefile\Geometry\Point;
use Shapefile\Geometry\Linestring;
$Shapefile = new ShapefileWriter($nombre_archivo);
$Shapefile->setShapeType(Shapefile::SHAPE_TYPE_POLYLINE);

$Shapefile->addFloatField('id');
$Shapefile->addFloatField('padron');
$Shapefile->addFloatField('colector');
$Shapefile->addCharField('profundi', 254);
$Shapefile->addCharField('tipo', 254);
$Shapefile->addCharField('seccion', 254);
$Shapefile->addCharField('alta_fue', 254);
$Shapefile->addCharField('alta_des', 254);
$Shapefile->addCharField('alta_fec', 254);
$Shapefile->addCharField('sur', 254);
$Shapefile->addCharField('etapa', 254);
//$Shapefile->addCharField('ccz', 254);
$Shapefile->addCharField('accion', 254);
//$Shapefile->addFloatField('activo');
$Shapefile->addFloatField('z_col');	
$Shapefile->addFloatField('via');
//$Shapefile->addFloatField('id_trami');
//$Shapefile->addFloatField('id_con_a');
$Shapefile->addCharField('calle', 254);
$Shapefile->addCharField('tramite', 254);
$Shapefile->addCharField('empresa', 254);	
//$Shapefile->addCharField('oses', 254);
//$Shapefile->addCharField('servicio', 254);
//$Shapefile->addCharField('tgms', 254);
//$Shapefile->addCharField('audios', 254);
$Shapefile->addCharField('fotos', 254);
$Shapefile->addCharField('puertas', 254);
//$Shapefile->addCharField('historia', 254);
$Shapefile->addCharField('descripc', 254);

$conexiones = json_decode($datos);
for($j = 0;$j<count($conexiones);$j++)
{
	$conexion = $conexiones[$j];
				$x1 = $conexion->lon1;
				$y1 = $conexion->lat1;
				$x2 = $conexion->lon2;
				$y2 = $conexion->lat2;
				$id = $conexion->id;
				$padron = $conexion->padron;
				$colector = $conexion->colector;
				$profundidad = $conexion->profundidad;
				$tipo = $conexion->tipo;
				$seccion = $conexion->seccion;
				$alta_fuent = $conexion->alta_fuent;
				$alta_descr = $conexion->alta_descr;
				$alta_fecha = $conexion->alta_fecha;
				$sur = $conexion->sur;
				$etapa = $conexion->etapa;
				$accion = $conexion->accion;
				$z_col = $conexion->z_col;
				$via = $conexion->via;
				$calle = $conexion->calle;
				$tramite = $conexion->tramite;
				$empresa = $conexion->empresa;
				$fotos = $conexion->fotos;
				$puertas = $conexion->puertas;
				$descripcion = $conexion->descripcion;

	$coords_array = array();
	$elemento = ['x'=>$x1,'y'=>$y1];
	array_push($coords_array,$elemento);
	$elemento = ['x'=>$x2,'y'=>$y2];
	array_push($coords_array,$elemento);	

	$linea = new Linestring();   

    foreach ($coords_array as $i => $coords) {
        $Point = new Point($coords['x'], $coords['y']);
		$linea->addPoint($Point);
    }


//	    $linea->setData('OGR_FID',$OGR_FID);
	    $linea->setData('id',$id);
		$linea->setData('padron',$padron);
		$linea->setData('colector',$colector);
    	$linea->setData('profundi', $profundidad);
    	$linea->setData('tipo', $tipo);
		$linea->setData('seccion', $seccion);
		$linea->setData('alta_fue', $alta_fuent);
		$linea->setData('alta_des', $alta_descr);
		$linea->setData('alta_fec', $alta_fecha);
		$linea->setData('sur', $sur);
		$linea->setData('etapa', $etapa);
		$linea->setData('accion', $accion);
		$linea->setData('z_col',$z_col);	
		$linea->setData('via',$via);
		$linea->setData('calle', $calle);
		$linea->setData('tramite', $tramite);
		$linea->setData('empresa', $empresa);	
		$linea->setData('fotos', $fotos);
		$linea->setData('puertas', $puertas);
		$linea->setData('descripc', $descripcion);
	$Shapefile->writeRecord($linea);
}



$tmp_file = '';
    $Shapefile = null;
	$files = glob($nombre_archivo . "*");
	if (count($files) > 0)
	{
	   $zip = new ZipArchive();
	   $ruta_completa = $_SERVER['DOCUMENT_ROOT'] . '/CONEXIONES/php/referencias/Shapefile';
	   $tmp_file = $ruta_completa . '/conexiones' . $fecha_nombre_archivo . '.zip';
	   $zip->open($tmp_file, ZipArchive::CREATE);
	   foreach($files as $file){
		   $file2 = $_SERVER['DOCUMENT_ROOT'] . '/CONEXIONES/php/' . $file;
		   $ruta_archivo = pathinfo($file); 
		   $nombre_archivo2 = $ruta_archivo["basename"]; 
		   $zip->addFile($file2,$nombre_archivo2);
	   }
	   $zip->close();

	   unlink($nombre_archivo . ".dbf");
	   unlink($nombre_archivo . ".shp");
	   unlink($nombre_archivo . ".shx");
	   unlink($nombre_archivo . ".prj");
	}

	$nombre_archivo = "referencias/Shapefile/conexiones*.zip";
	$files = glob($nombre_archivo);
	foreach($files as $file){
		$ruta_archivo = pathinfo($file); 
		$nombre_archivo2 = $ruta_archivo["dirname"] . "/". $ruta_archivo["basename"];
		$fecha_fichero= dl_fecha::dl_fecha_texto_a_date(date('Y-m-d H:i:s',filemtime($nombre_archivo2)));
		$fecha_ahora = dl_fecha::dl_ahora_date();
		$interval = $fecha_ahora->diff($fecha_fichero);
		$horas =  ($interval->format('%y') * 635) + ($interval->format('%m') * 30) + ($interval->format('%d') * 24) + $interval->format('%h');
		if ($horas > 4){
			unlink($nombre_archivo2);
		}
	}


$url_completo = $_SERVER['SERVER_NAME'] . '/CONEXIONES/php/referencias/Shapefile/conexiones' . $fecha_nombre_archivo . '.zip';;	
echo $url_completo;

    ?>

