Tenho um banco de dados com estados e cidades, necessito retorna todas as cidades em um raio “X” da cidade informada. Qual a melhor forma de se fazer isso, sendo que vou ter uma grande quantidade de requisições ?
Banco de dados utilizado: PostgreSQL
Linguagem de programação: PHP
Essa estrutura de banco de dados já possui os dados referentes à distância ou o perímetro de uma cidade para outra?
Como é mais fácil falar do que fazer, não custa nada tentar colaborar.
Não sei se ajuda, mais, poderia pensar no seguinte:
O meio utilizado para calcular distâncias neste caso seria utilizando latitude e longitude.
De posse desses dados, você teria que adicionar esse valor X à latitude ou à longitude da cidade, para formar o raio da circunferência.
Traçada a circunferência procure em seu banco de dados, as cidades que estão dentro do perímetro gerado.
Vai precisar utilizar um algoritmo para calcular o menor caminho, sendo que deve considerar a curvatura da terra na formulação das distâncias.
Dê uma olhada ai: Como calcular a distância entre 2 pontos com latitude e longitude?
Surge uma incógnita, se não haveria alguma API/Biblioteca com isto elaborado.
Té+
Não possui, mais posso adicionar. O problema é que ainda não sei a melhor forma de se fazer isso.
Obrigado pela resposta, vou dar uma olhada no link.