Pergunta

  1. Então, aqui está o problema ... Eu tenho um campo em que os usuários podem digitar seu endereço (que será geocodificado pela API do Google Maps).
  2. Eu tenho vários endereços de widgets no meu banco de dados (salvo como endereço. Novamente, pode ser facilmente geocodificado).

O que eu preciso é que o usuário digite seu endereço e para uma lista dos meus widgets aparecer com base na distância do endereço deles. Tenho milhares de endereços para meus widgets e usuários têm um número infinito de endereços, obviamente.

Alguma ideia?

Obrigado.

Foi útil?

Solução

SELECT latitude, longitude, SQRT( POW( 69.1 * ( latitude - 52.58 ) , 2 ) + 
POW( 69.1 * ( - 1.12 - longitude ) * COS( latitude / 57.3 ) , 2 ) ) AS distance 
FROM location ORDER BY distance

Clique aquiEles fornecem várias maneiras de calcular a distância - escolha o que funciona melhor para você.

Outras dicas

Se você estiver armazenando os itens em um db mysql, então Aqui está a base do que você precisa

Você realmente não pode usar o Google para calcular sua filtragem de distância geográfica. Para fazer isso, você teria que enviar seus dados, armazená -los e consultá -los para você. Eles podem oferecer esse serviço, agora ou no futuro, mas eu não ouvi falar disso.

Em ordem de mais legal, mais capaz, mais caro:

A/ AS SOLTEIRO Pontos ou locais de interesse são informações dos clientes do seu site, coletam as coordenadas geográficas. Em seguida, use seu próprio mecanismo de pesquisa e pesquise a distância de um ponto. Pode ser uma violação do contrato com o Google, mas eles mencionam os resultados do 'cache' para tirar a carga de seus servidores. (O motivo é meu palpite pessoal.)

B/ use o Google para fazer geocodificação a granel, talvez um de cada vez, até um máximo de 5000 por dia de acordo com o endereço IP do seu site pela última vez que vi. Não é mesmo certo se isso não é uma violação do contrato de uso.

C/ compre um contrato com um serviço de geocodificação e armazene o que eles geocodem para você.

D/ compre uma biblioteca de geocodificação e faça sua própria geocodificação.

Esta postagem do blog, "Calcule a distância usando a API do Google Maps", pode ter alguma assistência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top