forked from qwerty/milfs
Manejo de datos GPS en exif de las imagenes, si se sube una imagen georeferenciada a un formulario que tenga un campo de mapa, este automagicamente se ubicará sobre las coordenadas de la imagen, tambien se cambio el layer por defecto de openstreetmap al del hot
This commit is contained in:
parent
7643753adf
commit
485e74ac33
8141
milfs/funciones/funciones.php
Normal file → Executable file
8141
milfs/funciones/funciones.php
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@ if ( !isset ( $_SESSION['id'] ) ) {
|
||||
//header("Location: ../../../includes/error.php");
|
||||
// echo "hola mundo2";
|
||||
}
|
||||
|
||||
$imagen= $_REQUEST[id_imagen];
|
||||
if($_REQUEST[u] == "escritorio") {$respuesta = "escritorio/";}
|
||||
// Script Que copia el archivo temporal subido al servidor en un directorio.
|
||||
@ -28,7 +29,9 @@ if (($tipo == 'image/jpeg' or $tipo =='image/png') AND $size <= $upload_size )
|
||||
// (3) Por ultimo se intenta copiar el archivo al servidor.
|
||||
$name = MD5(time())."$ext";
|
||||
$nombre= "$_SESSION[path_images_secure]/full/".$name;
|
||||
|
||||
$imagenX = $_FILES[fileUpload][tmp_name];
|
||||
$coordenadas = leer_exif($imagenX);
|
||||
if($coordenadas !='') { $alerta = "alert('Se han detectado coordenadas en los metadatos de la imagen y se ubicará el mapa en ese lugar.');";}
|
||||
//if (!copy($_FILES['fileUpload']['tmp_name'],"$nombre"))
|
||||
if (!move_uploaded_file($_FILES['fileUpload']['tmp_name'],$nombre))
|
||||
//move_uploaded_file($tmp_name, "$uploads_dir/$name");
|
||||
@ -43,7 +46,8 @@ else{
|
||||
echo generar_miniatura($name,"150");
|
||||
echo generar_miniatura($name,"300");
|
||||
echo generar_miniatura($name,"600");
|
||||
echo "<script>parent.resultadoUpload(0, '$name','$_SESSION[url]/','$imagen');</script> ";
|
||||
///$name= "$name?$coordenadas"
|
||||
echo " <script>parent.resultadoUpload(0, '$name','$_SESSION[url]/','$imagen','$coordenadas'); $alerta </script> ";
|
||||
}
|
||||
}
|
||||
else echo "<script>parent.resultadoUpload(2,'','$_SESSION[url]/','$imagen');</script> ";
|
||||
@ -62,5 +66,43 @@ $archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes de
|
||||
$newheight = $alto;
$newwidth = round($newheight / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$alto."/$file", 80);
|
||||
//imagejpeg($thumb,null, 80);
|
||||
}
|
||||
|
||||
// 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 = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
|
||||
}else{$resultado ="";}
|
||||
//$resultado = "$gps_longitude $gps_latitude";
|
||||
|
||||
return $resultado;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
@ -96,7 +96,7 @@ function finMovimiento(event)
|
||||
//// fin drag div
|
||||
|
||||
|
||||
function resultadoUpload(estado, file,respuesta,id) {
|
||||
function resultadoUpload(estado, file,respuesta,id,coordenadas) {
|
||||
var link = '<br />';
|
||||
if (estado == 0)
|
||||
var mensaje = '<img class=" img-thumbnail responsive" src="'+respuesta+'images/secure/?file=600/' + file + '" >' + link;
|
||||
@ -111,6 +111,10 @@ if (estado == 3)
|
||||
var mensaje = 'Error ! - No se pudo copiar Archivo. Posible problema de permisos en server' + link;
|
||||
document.getElementById('formUpload').innerHTML=mensaje;
|
||||
document.getElementById(id).value=file;
|
||||
if (coordenadas != '') {
|
||||
document.getElementById('mapita').contentWindow.document.location.href=coordenadas;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function resultadoUploadArchivo(estado,file,div) {
|
||||
|
Loading…
Reference in New Issue
Block a user