Mobile website

sete.um

Power Member
Não sei se este é o topico adequado para a minha pergunta.
Eu tenho um website e quando os usuários acedem ao mesmo por smartphone sao redirecionados para o meu website optimizado para dispositivos moveis, eu queria incluir um sript que mostra-se aos usuários a que distancia se encontram do meu negocio.
Existe uma feature muito interessante na app do tripadvisor que se chama ''point me there''.
Agora a minha dúvida é que se um sistema destes de localizaçao só poderá ser implementado em app android e nao em html para mobile websites.
Alguem me poderá ilucidar sobre este tema ?
Muito obrigado
 
Essas já tinha experimentado sem sucesso, isto a meu ver tem que ser um script que inclui a localização do GPS e a minha API e mais uns calculos matemáticos à mistura.
 
Não tem de ser GPS, o método abstrai esses detalhes e pode funcionar com torres de telemóvel, IP ou qualquer outro fornecedor de localização. Mas como disse, nunca experimentei e não conheço o estado atual de implementação.
 
Para obteres as coordenadas do utilizador, podes fazer:

Código:
var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};


function success(pos) {
  var crd = pos.coords;


  console.log('Your current position is:');
  console.log('Latitude : ' + crd.latitude);
  console.log('Longitude: ' + crd.longitude);
  console.log('More or less ' + crd.accuracy + ' meters.');
};


function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
};


navigator.geolocation.getCurrentPosition(success, error, options);

Mas o utilizador tem de permitir o acesso à localização.

Correndo na consola, obtenho:

Your current position is:

Latitude : 41.5740472
Longitude: -8.4230001
More or less 24 meters.


E sim, ele obtém as coordenadas por diversos meios, tais como gps, localização do hotspot wifi, localização da rede celular, etc. Podes ignorar, só precisas que o utilizador dê permissão para aceder a esses dados.

A seguir basta-te pegar nas coordenadas e aplicar esta fórmula matemática:

Código:
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();


var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;
 
Última edição:
Obrigado, mas não é bem isto que preciso.
É isto :
(business name) is x meters or km from you.

var d = R * c;

d = distancia entre dois pontos...

1º ponto, o teu negócio.
2º ponto, a posição do utilizador.

Não consigo explicar melhor que isto... Mas posso fazer um desenho no paint...
 
Olá, tu és capaz de ter razão no que dizes, eu sou um simples curioso nesta matéria, não sou nenhum engenheiro informático, o código que tu dizes eu não sei implementá-lo numa página web, porventura será melhor (se não te der muito trabalho, e se der pago-te uma cerveja se fores de Lisboa) é dizer como é fica o código todo.
Já agora tirei uma printscreen daquilo que realmente eu quero.

 
Back
Topo