JavaScript - Problemas con geolocation.getCurrentPosition()

 
Vista:
sin imagen de perfil
Val: 20
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con geolocation.getCurrentPosition()

Publicado por Larry (9 intervenciones) el 07/09/2020 09:48:12
Hola!!,
Tengo una web en la que he implementado la funcion geolocation.getCurrentPosition().

Lo que hago es pulsar un boton y en ese momento recojo las coordenadas gps de mi ubicacion actual.

El problema que me da es que si accedo a esa pagina (sin pulsar el boton) y me desplazo a otra ubicacion... cuando en la nueva ubicacion pulso el boton me guarda las coordenadas gps de la ubicacion anterior, no de la actual. No se si me he explicado bien...

Y ya no se que mas hacer para que funcione, agradezco muchisimo la ayuda. Gracias
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con geolocation.getCurrentPosition()

Publicado por joel (895 intervenciones) el 07/09/2020 10:54:17
Hola Larry, creo que tu problema esta en que javascript se ejecuta al cargar la pagina, por lo que obtiene los datos del GPS al cargarla... si te mueves, tienes que volver a obtener los datos, ya que si no indicas nada, las variables ya tienen los datos del primer lugar.

No se como lo haces, pero antes de guardar los datos, siempre tendrías que volver a obtenerlos.

No se si me he sabido explicar...
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problemas con geolocation.getCurrentPosition()

Publicado por Larry (9 intervenciones) el 07/09/2020 11:16:12
Gracias, si te he entendido. Pero ¿cómo puedo mirar si las variables ya contienen un valor?.

En principio yo cargo el javascript al pulsar el botón, no antes... Pero seguramente algo estare haciendo mal

subo el codigo a ver si ves algo raro y me puedes echar una mano.

Muchisimas gracias de antemano.

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
<?php
 
// -----------------------------------------
// Acciones boton Selecccionar mi ubicacion
// -----------------------------------------
 
	if (isset($_GET["grabar_ubicacion"])) {
 
		// Primero comprueba que se haya recogigo correctamente los datos de ubicacion
 
		if (!empty($_GET["latitud"]) && !empty($_GET["longitud"])) {
 
			// Recoge latitud y longitud y crea url para guardar en BD
			// -------------------------------------------------------------
 
			$url_mapa = "https://maps.google.com/?q=".$_GET["latitud"].",".$_GET["longitud"]."";
 
			// Actualiza en tabla clientes los campos url_mapa y nuevo=2 (modificado)
			// -----------------------------------------------------------------------
 
			$a_datos= array("clientes.url_mapa"=>trim($url_mapa),"clientes.nuevo"=>2);
			$a_filtros= array("clientes.cod_cliente"=>$_SESSION["mapa_datos"]["cod_cliente"]);
			$bd->Modificar("clientes",$a_filtros,$a_datos);
 
 
 
			// Redirige a pagina que lo llamo (mapas_clientes o ventas_cliente)
			// ------------------------------------------------------------------
 
			if ($pag_origen=="mapas_clientes.php") {?>
				<script>window.opener.document.location="mapas_clientes.php?orden=<?php echo $orden ?>&dato_filtro=<?php echo $dato_filtro ?>&filtrar_por=<?php echo $filtrar_por ?>";</script><?php
			}else{ ?>
				<script>window.opener.document.location="ventas_cliente.php";</script><?php
			}
			?>
 
			<!--cierra popup-->
			<script>window.close()</script><?php
			exit();
 
		// Error al realizar seguimiento de ubicacion
		} else {
 
			?><script>alert("Error al realizar seguimiento de ubicacion. Compruebe que tiene la ubicacion del dispostivo activada");</script><?php
 
		}// comprobacion ubicacion
 
	} // guardar ubicacion
 
?>
 
<form action="mapas_clientes_ubicacion.php" method="post" autocomplete="off" style="text-align:center"><?php
 
    <input type="text" name="latitud" id="latitud" class="invisible">
    <input type="text" name="longitud" id="longitud" class="invisible">
 
    <input type="submit" onClick="gps()" class="boton_exp_imp" value="Aceptar"/>
 
  	<div id='div_session_write'> </div>
 
        <!--
		Recoge Ubicacion GPS del agente
  	------------------------------------------------
  	El script debe ir aqui sino el php se ejecuta  mas rapido que el js y no se recogen los valores)-->
 
		<script>
 
			function gps() {
 
				navigator.geolocation.getCurrentPosition(showPosition);
 
    		                function showPosition(position) {
 
					var latitud = position.coords.latitude;
      		                        document.getElementById("latitud").value = latitud;
 
      		                        var longitud = position.coords.longitude;
    	  	                        document.getElementById("longitud").value = longitud;
 
					window.location.replace('mapas_clientes_ubicacion.php?grabar_ubicacion=1&latitud='+ latitud + "&longitud="+ longitud);
 
				} // function showPosition
 
	 		} // function gps
		        </script>
</form>
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