geolocalizacion de imagenes

This commit is contained in:
humano 2017-11-02 20:10:57 -05:00
parent df4bf761dd
commit 2c4cf5ddf7
7 changed files with 1190 additions and 14 deletions

View File

@ -595,7 +595,7 @@ $uri = $_SERVER['REQUEST_URI'];
<meta name='viewport' content='width=device-width' >
<meta name='mobile-web-app-capable' content='yes'>
<link rel='icon' sizes='192x192' href='<?php echo "milfs/images/secure/?file=150/$logo[0]"; ?>'>
<script type='text/javascript' src='librerias/exif/exif.js'></script>
<link rel="apple-touch-icon-precomposed" href="<?php echo "milfs/images/secure/?file=150/$logo[0]"; ?>">
<title><?php echo @$titulo[0]; ?> <?php echo strip_tags($slogan[0]); ?> Tupale.co </title>

1059
librerias/exif/exif.js Executable file

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,8 @@
padding: 0;
}
body {
background: #222;
font-family: Georgia, serif;

View File

@ -12955,7 +12955,7 @@ $item .= "<!-- <div class='col-sm-$columnas' style=';'> -->
<li class='list-group-item'>
<div class='input-group ' >
<span class='input-group-addon'>Vista favorita <strong id='div_vista_favorita_$row[id]'> $vista_favorita[0]</strong></span>
<span class='input-group-addon primary'>Vista favorita <strong id='div_vista_favorita_$row[id]'> $vista_favorita[0]</strong></span>
<select class='form-control' id='vista_favorita_$row[id]' name='vista_favorita_$row[id]' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','vista_favorita',document.getElementById('vista_favorita_$row[id]').value,'div_vista_favorita_$row[id]'); \">
<option value='$vista_favorita[0]' selected>$vista_favorita[0]</option>
<option value='libro'>Libro [b]</option>
@ -13119,13 +13119,16 @@ return $respuesta;
}
$xajax->registerFunction("campo_multiple");
function subidor_generico($campo,$item){
function subidor_generico($campo,$item,$form){
$campo_mapa = buscar_campo_tipo($form,"14");
$campo_mapa = $campo_mapa[0];
$name= $campo."[".$item."]";
$tipo_campo = remplacetas("form_campos","id","$campo","campo_tipo","");
if($tipo_campo[0] =='15'){
$onchange= "comprueba_imagen('$campo','$item', (this.value) ) ;";
$onchange= "comprueba_imagen('$campo','$item', (this.value),'$campo_mapa' ) ;";
}else {
$onchange= "comprueba_archivos('$campo','$item', (this.value) ) ;";
$onchange= "comprueba_archivos('$campo','$item', (this.value),'$campo_mapa' ) ;";
}
$resultado = "
@ -13299,11 +13302,11 @@ elseif($campo_tipo_accion == 'email'){$render = "
// $style ="display:hidden";
// $gps = leer_exif($file);
//$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
$render=subidor_generico($id_campo,$item);
$render=subidor_generico($id_campo,$item,$id_form);
$cols='12'; }
elseif($campo_tipo_accion == 'adjunto'){
$render=subidor_generico($id_campo,$item);
$render=subidor_generico($id_campo,$item,$id_form);
$cols='12'; }

View File

@ -15,14 +15,37 @@ else {
// $ext = "novalida";
$imagen=0;}
$nombrecillo= $_REQUEST['nombrecillo'];
$name = "$nombrecillo";
$dir_subida = '/home/images_secure/';
$fichero_subido = $dir_subida ."full/".$name;
//// extrar coordenadas del exif
$imagenX = $_FILES['fileUpload']['tmp_name'];
$coordenadas = leer_exif($imagenX);
//$link = "$_SESSION[url]mapero.php?lat=$coordenadas[lon]&lon=$coordenadas[lat]&zoom=16&id=$name";
if($coordenadas !='') {
$coordenadas = "$coordenadas"."&id=$_REQUEST[campo_mapa]"."[0]";
$alerta = "alert(' Se han detectado coordenadas en los metadatos de la imagen y se ubicará el mapa en ese lugar.');";
}
if (move_uploaded_file($_FILES["$campo"]['tmp_name'], $fichero_subido)) {
if($imagen==1) {
//// extrar coordenadas del exif
$imagenX = $_FILES["$campo"]['tmp_name'];
$coordenadas = leer_exif("$fichero_subido");
//$link = "$_SESSION[url]mapero.php?lat=$coordenadas[lon]&lon=$coordenadas[lat]&zoom=16&id=$name";
if($coordenadas !='') {
$coordenadas = "$coordenadas"."&id=$_REQUEST[campo_mapa]"."[0]";
$alerta = "alert(' Se han detectado coordenadas en los metadatos de la imagen y se ubicará el mapa en ese lugar.');";
}
echo miniaturizar($name,"150",$dir_subida);
echo miniaturizar($name,"300",$dir_subida);
echo miniaturizar($name,"600",$dir_subida);
@ -41,6 +64,44 @@ imagepng($thumb,$directorio.$width."/$file", 9);
}
}
// Convertir un string "1/123" a su representación float
function exif_float($value) {
$pos = strpos($value, '/');
if ($pos === false) return (float) $value;
$a = (float) substr($value, 0, $pos);
$b = (float) substr($value, $pos+1);
return ($b == 0) ? ($a) : ($a / $b);
}
function leer_exif($file){
//$file = "/var/www/html/milfs/images/gps.jpg";
$exif = exif_read_data( $file );
if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
$d = (float) $exif['GPSLongitude'][0];
$m = exif_float($exif['GPSLongitude'][1] );
$s = exif_float( $exif['GPSLongitude'][2] );
$gps_longitude = (float) $d + $m/60 + $s/3600;
if ( $exif['GPSLongitudeRef'] == 'W')
$gps_longitude = -$gps_longitude;
$d = $exif['GPSLatitude'][0];
$m = exif_float($exif['GPSLatitude'][1] );
$s = exif_float( $exif['GPSLatitude'][2] );
$gps_latitude = (float) $d + $m/60 + $s/3600;
if ( $exif['GPSLatitudeRef'] == 'S')
$gps_latitude = -$gps_latitude;
if($gps_latitude !='') {
$resultado = "../mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18&exif=exif";
}else{$resultado ="";}
//$resultado = "$gps_longitude $gps_latitude";
return $resultado;
}
}
?>

View File

@ -1,6 +1,53 @@
function leer_exif(campo,campo_mapa) {
// alert(campo)
// var file = e.target.files[0]
var file = document.getElementById(campo).files
file= file[0]
if (file && file.name) {
EXIF.getData(file, function() {
var long = EXIF.getTag(this, 'GPSLongitude');
var reflat = EXIF.getTag(this, 'GPSLatitudeRef');
var reflon = EXIF.getTag(this, 'GPSLongitudeRef');
var lat = EXIF.getTag(this, 'GPSLatitude');
var altura = EXIF.getTag(this, 'GPSAltitude');
/* if ( $exif['GPSLongitudeRef'] == 'W')
$gps_longitude = -$gps_longitude; */
var toDecimal = function (number) {
return number[0].numerator + number[1].numerator / (60 * number[1].denominator) + number[2].numerator / (3600 * number[2].denominator);
};
var exifData = EXIF.pretty(this);
if (exifData) {
long = toDecimal(long);
if (reflon == 'W') {
long = -long;
}
lat = toDecimal(lat);
if (reflat == 'S') {
lat = -lat;
}
function comprueba_imagen(campo,item, archivo) {
var coordenadas = "milfs/mapa.php?lon="+lat+"&lat="+long+"&zoom=18&id="+campo_mapa+"[0]";
// alert(long+' '+lat+' '+altura );
document.getElementById('mapita').contentWindow.document.location.href=coordenadas;
var minimapa = campo+"//<img class='lazy img-round img img-responsive' src ='http://staticmap.openstreetmap.de/staticmap.php?center="+lat+","+long+"&zoom=12&size=250x100&maptype=mapnik&markers="+lat+","+long+",red-pushpin' >";
document.getElementById("geo_"+campo).innerHTML = minimapa;
} else {
// alert("No EXIF data found in image '" + file.name + "'.");
}
});
}
else{
//alert(file.name)
}
}
function comprueba_imagen(campo,item, archivo,campo_mapa) {
extensiones_permitidas = new Array('.gif', '.jpg', '.png');
mierror = '';
if (!archivo) {
@ -23,7 +70,7 @@ function comprueba_imagen(campo,item, archivo) {
}else{
//submito!
///alert ('Todo correcto. Voy a submitir el formulario.');
selectedFile(campo,item);
selectedFile(campo,item,campo_mapa);
//uploadFile(campo,item);
// formulario.submit();
return 1;
@ -34,7 +81,7 @@ function comprueba_imagen(campo,item, archivo) {
return 0;
}
function comprueba_archivos(campo,item, archivo) {
function comprueba_archivos(campo,item, archivo,campo_mapa) {
extensiones_permitidas = new Array('.gif', '.jpg', '.png', '.pdf', '.txt', '.csv', '.mp3', '.mov', '.mp4', '.orf', '.gpx', '.json');
mierror = '';
if (!archivo) {
@ -57,7 +104,7 @@ function comprueba_archivos(campo,item, archivo) {
}else{
//submito!
//alert ('Todo correcto. Voy a submitir el formulario.');
selectedFile(campo,item);
selectedFile(campo,item,campo_mapa);
// formulario.submit();
return 1;
}
@ -68,7 +115,7 @@ function comprueba_archivos(campo,item, archivo) {
}
//// funciones upload_generico
function selectedFile(campo,item) {
function selectedFile(campo,item,campo_mapa) {
var campo;
var item;
var nombre = campo+"["+item+"]";
@ -98,10 +145,13 @@ function comprueba_archivos(campo,item, archivo) {
var divfileName = document.getElementById('fileName_'+nombre);
divfileSize.innerHTML = 'Tamaño: <strong>' + fileSize+"</strong>";
divfileType.innerHTML = 'Tipo: <strong>' + file.type+"</strong>";
divfileName.innerHTML = 'Nombre original: <strong>' + file.name+"</strong>" ;
divfileName.innerHTML = 'Nombre original: <strong>' + file.name+"</strong><div id='geo_"+campo+"-"+item+"'></div>" ;
if ((file.type != "image/jpeg") && (file.type != "image/png") ) {
document.getElementById("div_preview_"+nombre).innerHTML = "<h2><i class='fa fa-file' aria-hidden='true'></i><br>"+file.type+"</h2>";
}else{
leer_exif(campo+"-"+item,campo_mapa)
document.getElementById("div_preview_"+nombre).innerHTML = "<h2>"+file.type+"</h2>";
document.getElementById("image_preview_"+nombre).src = window.URL.createObjectURL(archivoSeleccionado.files[0]);
// document.getElementById("image_preview_"+nombre).alt = file.type;

View File

@ -55,6 +55,7 @@ function onLocationError(e) {
var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
//var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
map.setView([<?php echo $lon ?>, <?php echo $lat ?>], <?php echo $zoom ?>);
marker.on('dragend', ondragend);