PHP - Formulario con geolocalizacion volcado en excel

 
Vista:

Formulario con geolocalizacion volcado en excel

Publicado por Xavier (2 intervenciones) el 17/11/2015 22:01:37
Hola necesito poder crear un formulario k consiga extraer la ubicación de kien lo rellena y al enviar k sea volcado en algún Excel o acces ojalá puedan ayudarme pues llevo varios días loco x conseguirlo para mi trabajo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario con geolocalizacion volcado en excel

Publicado por txema (41 intervenciones) el 18/11/2015 17:25:16
Hola Xavier:

Por el comentario que has dejado en la página del código Geolocalización basada en W3C reiteras tu interés en volcar los datos en un excel.

Si los datos van a ser procesados posteriormente (entiéndase, algo como obtener las direcciones de las coordenadas, o representar los puntos en un mapa), el trabajo es dóblemente complejo.

Lo normal sería recogerlos en una base de datos para procesarlos más adelante. Trasladar esos datos posteriormente a un excel sería, en el peor de los escenarios, reducir la complejidad enormemente.

Corrígeme, pero trasladar los datos a excel entiendo que es un medio, no un fin en sí mismo.

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario con geolocalizacion volcado en excel

Publicado por XAVIER (2 intervenciones) el 18/11/2015 17:48:26
te comento el fin de todo es que el usuario (empleado) manda su ubicacion en el momento que se lo solicito con lo cual como almacenarlo es el menor de mis problemas ya que lo interesante es tener un registro de todos los movimientos para poder comprobar dicha ubicacion, en un google maps por ejemplo, tan cuantas veces me sea necesario con lo cual si no es en excel y es en bd tampoco me importaria si se simplifica el trabajo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario con geolocalizacion volcado en excel

Publicado por txema (41 intervenciones) el 18/11/2015 18:26:52
La geolocalización W3C te permite geolocalizar una vez, reiteradamente y en el segundo caso, dejar de geolocalizar. Siempre que el usuario permita enviar su ubicación, como te decía xve.

La documentación completa la tienes en http://dev.w3.org/geo/api/spec-source.html

El código completo html (sin estilos) sería:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Geolocalización basada en W3C">
    <title>Geolocalización basada en W3C</title>
<script>
var watchId;
// Controlamos los tiempos de espera mínimo y máximo de nuestra geolocalización respecto a la petición anterior
var PositionOptions = {
    enableHighAccurace: true, // busca el mejor dispositivo de geolocalización (GPS, tiangulación, ...)
    timeout: 5000,
    maximumAge: 60000
};
// initiate_geolocation() utiliza la geolocalalización solamente cuando se solicita.
// Con PositionOptions aseguramos que la posición no corresponde a caché
function initiate_geolocation() {
  if (navigator.geolocation) {
    // Boleano, Para optimizarlo en los navegadores (mis dudas con IE)
    browserSupportFlag = true;
    var watchId = navigator.geolocation.getCurrentPosition(successCallback, errorCallback, PositionOptions);
  } else {
    document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
  }
}
// Reitera la geolocalización hasta que la detenemos con clear_watch_geolocation()
function watch_geolocation() {
  if (navigator.geolocation) {
    // Boleano, Para optimizarlo en los navegadores (mis dudas con IE)
    browserSupportFlag = true;
    var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback, PositionOptions);
  } else {
    document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
  }
}
/* Detenemos la geolocalización reiterada */
function clear_watch_geolocation() {
  if (navigator.geolocation) {
    navigator.geolocation.clearWatch(watchId);
  } else {
    document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
  }
}
 
function successCallback(pos) {
  var timestamp = document.getElementById('timestamp');
  var date = new Date(pos.timestamp);
  // Hacemos legible la fecha a nuestro léxico.
  // timestamp nos daría una lectura como ésta: Sat Jan 17 2015 18:47:52 GMT+0100
  var mes = date.getMonth() + 1;
  if (mes < 10) {
    mes = "0" + mes
  }
  var dia = date.getDate();
  if (dia < 10) {
    dia = "0" + dia
  }
  var anyo = date.getFullYear();
  var hora = date.getHours();
  if (hora < 10) {
    hora = "0" + hora
  }
  var minuto = date.getMinutes();
  if (minuto < 10) {
    minuto = "0" + minuto
  }
  var segundo = date.getSeconds();
  if (segundo < 10) {
    segundo = "0" + segundo
  }
  var timestamp = document.getElementById('timestamp');
  timestamp.innerHTML = dia + "/" + mes + "/" + anyo + ", " + hora + ":" + minuto + ":" + segundo;
  var latitude = document.getElementById('latitude');
  // con toFixed(6) limito decimales a 6
  latitude.innerHTML = pos.coords.latitude.toFixed(6);
  var longitude = document.getElementById('longitude');
  longitude.innerHTML = pos.coords.longitude.toFixed(6);
  // accuracy considera el diámetro máximo de error. Muchos lo dividen por 2 ya que sería el radio máximo de error.
  var accuracy = document.getElementById('rangoerror');
  accuracy.innerHTML = pos.coords.accuracy;
  // La altitud sobre la superficie. Solo será medible desde avión, paramente ... o será 0
  var altitude = document.getElementById('altitude');
  altitude.innerHTML = pos.coords.altitude.toFixed(6);
  // accuracy considera el diámetro máximo de error. Muchos lo dividen por 2 ya que sería el radio máximo de error.
  var altitudeAccuracy = document.getElementById('rangoerrorAltitud');
  altitudeAccuracy.innerHTML = pos.coords.altitudeAccuracy;
  // Sentido y velocidad si la medición se hace desde un dispositivo en movimiento
  // 0 => Norte en sentido agujas del reloj hasta 360º
  var heading = document.getElementById('sentido');
  heading.innerHTML = pos.coords.heading;
  // metros/segundo si se detecta movimiento
  var speed = document.getElementById('velocidad');
  speed.innerHTML = pos.coords.speed;
};
/* Posibles errores que se pueden producir en la geolocalización */
function errorCallback(error) {
  var appErrMessage = null;
  if (error.core == error.PERMISSION_DENIED) {
    appErrMessage = "El usuario no ha concedido los privilegios de geolocalización"
  } else if (error.core == error.POSITION_UNAVAILABLE) {
    appErrMessage = "Posición no disponible"
  } else if (error.core == error.TIMEOUT) {
    appErrMessage = "Demasiado tiempo intentando obtener la localización del usuario."
  } else if (error.core == error.UNKNOWN) {
    appErrMessage = "Error desconocido"
  } else {
    appErrMessage = "Error insesperado"
  }
  document.getElementById("mensaje").innerHTML = appErrMessage
};
</script>
  </head>
  <body>
    <section style="text-align:center;">
	<button type="button" class="button" onclick="initiate_geolocation();">Ver mi posición ahora</button>
    <br>
	<button type="button" class="button" onclick="watch_geolocation();">Monitorizar mi posición</button>
	<br>
	<button type="button" class="button" onclick="clear_watch_geolocation();">Finalizar monitorización</button>
	<br>
	Fecha: <span style="color:#FF00AA;" id="timestamp"></span>
	<br>
	Latitud: <span style="color:#FF00AA;" id="latitude"></span>
	<br>
	Longitud: <span style="color:#FF00AA;" id="longitude"></span>
	<br>
	Error máximo de geolocalización: <span style="color:#FF00AA;" id="rangoerror"></span> metros.
	<br>
	Altitud: <span style="color:#FF00AA;" id="altitude"></span> (Sobre nivel suelo: parapente, avión, ...)
	<br>
	Error máximo de Altitud: <span style="color:#FF00AA;" id="rangoerrorAltitud"></span> metros.
	<br>
	Dirección (0 => Norte en sentido agujas del reloj hasta 360º): <span style="color:#FF00AA;" id="sentido"></span>
	<br>
	Velocidad (metros/segundo si se detecta movimiento): <span style="color:#FF00AA;" id="velocidad"></span>
	<br>
    <div id="mensaje" style="color:#FF0000;"></div>
	</section>
  </body>
</html>

Verlo funcionando con Google Maps lo tendrías en .../geolocalizacion.html
Puedes ver su desarrollo en http://www.lawebdelprogramador.com/codigo/JavaScript/3008-Geolocalizacion-mostrada-en-Google-Maps.html (en este caso solamente desarrolla getCurrentPosition)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar