Pessoal,
Estou tentando usar geolocalização em uma aplicação HTML + PHP.
Vi neste link uma forma bem simples de usar: http://www.w3schools.com/html/html5_geolocation.asp.
Desta forma funcionou perfeitamente.
A única que eu precisava, e que não estou conseguindo, é salvar os dados de latitude e longitude para uma tabela MySQL, ou seja, precisaria apenas do conteúdo de x.innerHTML.
Basicamente, eu precisaria salvar estes dados numa variável, para depois acrescê-la na tabela. E é justamente neste ponto que estou me batendo. Já testei de várias formas, em HTML puro ou acrescendo PHP, mas não funciona.
Alguém poderia me ajudar?
geolocalização
Moderador: Moderadores
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
geolocalização
Amigo, uma solução que encontrei foi chamar um arquivo PHP dentro da função criada pelo javascript:
arquivo geo.html
arquivo geo.php
Obs.: na linha 4 tirar os espaços que estão em < br >
Então, no arquivo PHP você pode pegar as variáveis $lat e $lon e gravar da maneira que você quiser.
Teste: https://pctoledo.org/temp/geo.html
Lembrando: no seu servidor as variáveis $HTTP_POST_VARS e $HTTP_GET_VARS são capturadas de outra maneira, então veja outros códigos que já passei para você.
Abraços,
arquivo geo.html
Código: Selecionar todos
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var url_php = "https://pctoledo.org/temp/geo.php?lat="+lat+"&lon="+lon;
location.href= url_php;
}
</script>
</body>
</html>Código: Selecionar todos
<?php
$lat = ( isset($HTTP_POST_VARS['lat']) ) ? $HTTP_POST_VARS['lat'] : $HTTP_GET_VARS['lat'];
$lon = ( isset($HTTP_POST_VARS['lon']) ) ? $HTTP_POST_VARS['lon'] : $HTTP_GET_VARS['lon'];
$geo = "Latitude: ".$lat."< br >Longitude: ".$lon;
print_r($geo);
?>Então, no arquivo PHP você pode pegar as variáveis $lat e $lon e gravar da maneira que você quiser.
Teste: https://pctoledo.org/temp/geo.html
Lembrando: no seu servidor as variáveis $HTTP_POST_VARS e $HTTP_GET_VARS são capturadas de outra maneira, então veja outros códigos que já passei para você.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
geolocalização
Muito obrigado, Toledo.
No teu site funcionou perfeitamente.
No meu também. Fiz a adaptação do HTPP, e ficou ok.
Mas agora estou tentando inserir este script na função que estou fazendo, e daí, não sei porque, não está funcionando.
Sei que devo ter feito algo errado, pois não sei bem como inseri-lo dentro da minha função.
Veja como estou fazendo. O primeiro arquivo ficou assim:
O segundo, ainda não terminado, está assim:
Neste caso, as variáveis $lon e $lat estão em branco.
No teu site funcionou perfeitamente.
No meu também. Fiz a adaptação do HTPP, e ficou ok.
Mas agora estou tentando inserir este script na função que estou fazendo, e daí, não sei porque, não está funcionando.
Sei que devo ter feito algo errado, pois não sei bem como inseri-lo dentro da minha função.
Veja como estou fazendo. O primeiro arquivo ficou assim:
Código: Selecionar todos
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Controle do carro</title>
<body>
<form id="carro" name="carro" method="post" action="cadcarro.php" onsubmit="return validaCampo(); return false;">
<table width="625" border="0">
<br>
<br>
Favor preencher os dados abaixo:
<br>
<br>
<tr>
<td width="89">Quilometragem atual:</td>
<td width="546"><input name="km" type="text" id="km" size="10" maxlength="10" />
<span class="style1"></span></td>
</tr>
<tr>
<td width="69">Local do cadastro:</td>
<td width="546"><input name="local" type="text" id="local" size="20" maxlength="20" />
<span class="style1"></span></td>
</tr>
<br>
<br>
<tr>
<td colspan="4"><p>
<button onclick="getLocation()">Cadastrar dados</button>
<p id="demo"></p>
<input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos" />
<span class="style1"> </span></p>
<p> </p></td>
</tr>
</table>
</form>
</body>
</html>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var url_php = "http://www.inaciocarvalho.com.br/php/cadcarro.php?lat="+lat+"&lon="+lon;
location.href= url_php;
}
</script>
</body>
</html> O segundo, ainda não terminado, está assim:
Código: Selecionar todos
<html>
<head>
</head>
<body>
<?php
$km = $_POST['km'];
$lc = $_POST['local'];
$hr = (date('H')).":".date('i').":".date('s');
$dt = date('Y')."-".date('m')."-".date('d');
$lat = ( isset($_POST['lat']) ) ? $_POST['lat'] : $_GET['lat'];
$lon = ( isset($_POST['lon']) ) ? $_POST['lon'] : $_GET['lon'];
echo "<font face='arial' color='orange' size='50'>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "Km: ".$km;
echo "<br>";
echo "<br>";
echo "Local: ".$lc;
echo "<br>";
echo "<br>";
echo "Latitude: ".$lat;
echo "<br>";
echo "<br>";
echo "Longitude: ".$lon;
echo "<br>";
echo "<br>";
echo "<br>";
echo '<form action="carro.php"';
echo "width='65%' style='height:150px;'>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<input size='35' style='font-size:120px' type='submit' id='Voltar' value='Voltar'>";
echo "</form>";
?>
Inacio de Carvalho Neto
