Página 1 de 1

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 05 Jun 2020 10:59
por ANDRIL
A api do Google passou a ser paga. Antes usava ela para obter a distância entre 2 locais através do endereço. As que achei precisam da latitude e longitude para buscarem o resultado.
Usava assim:

Código: Selecionar todos

url = [http://maps.googleapis.com/maps/api/distancematrix/xml?origins=']+endloja+['|&destinations=']+endcliente+"'|&mode='CAR'|&language='PT'|&sensor='FALSE'"
Alguém usando outra api que localize pelo endereço e que seja gratuita e menos burocratica que a do Google?

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 05 Jun 2020 12:21
por JoséQuintas
Tenho anotado isto, mas nunca usei:

Código: Selecionar todos

/*

DLA = diferença de latitude
DLO = diferença de longitude
maximo 180 graus

a medida varia em 60, igual horas, graus 60 unidades, minutos 1 unidade, segundos 1/60

23,30,36
23 X 60
30 X 1
36 X 1/60

multiplica no final por 1.852, que é o fator de conversão de milha náutica para quilômetros

pra considerar curvatura da terra:
x = 60 * ( ( ACos( Sen( Lat1 * PI / 180 ) * Sen( Lat2 * PI / 180 ) +
Cos( Lat1 * PI / 180 ) * Cos( Lat2 * PI / 180 ) * Cos( Abs( ( Long2 - long1 ) ) * PI / 180 ) ) ) * 180 / PI )
E multiplica o resultado por 1.852
mas trabalhar em graus:   g + m / 60 + s / 3600



p1 := { 1, 1, 1 }
p2 := { 1, 1, 1 }
L1 := p1[ 1 ] + p1[ 2 ] / 60 + p1[ 3 ] / 3600
L2 := p2[ 1 ] + p2[ 2 ] / 60 + p2[ 3 ] / 3600
PI := 3.1415926535979323846
nMN := 60 * ( ( Acos( Sen( L1 * PI / 180 ) * Sen( L2 * PI / 180 ) + ;
   Cos( L1 * PI / 180 ) * Cos( L2 * PI / 180 ) * Cos( Abs( ( L2 - L1 ) ) * PI / 180 ) ) ) * 180 / PI )
nKm := nMN * 1.852
*/
seria um cálculo a partir de latitude e longitude, pra calcular distância em linha reta.

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 06 Jun 2020 01:47
por alxsts
Olá!

O ideal é ter, nos cadastros de endereços, colunas para armazenar a latitude e longitude.

Calcular as distâncias até que não é difícil. O exemplo postado acima está mais detalhado no artigo Calculando distancias com base em coordenadas de gps/.

Difícil é substituir os recursos que a API do Google oferece, como mostrar pontos no mapa.

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 06 Jun 2020 10:40
por ANDRIL
José, não é bem o cálculo que preciso, mas um serviço que através do endereço do ponto A e B me de a distância sem saber a Latitude e Longitude. Isto é possível através da API do Google. Procuro um serviço alternativo, que aceite passar o endereço e não o LATI e LONG. As que tenho visto funcionam com estes parâmetros apenas.
alxsts escreveu:Difícil é substituir os recursos que a API do Google oferece, como mostrar pontos no mapa.
No meu caso, só preciso obter a distância para cálculo do frete.

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 06 Jun 2020 14:45
por alxsts
Olá!

Encontrei isso na internet: Mapacep
É uma base de dados onde se pode localizar a latlong de casa endereço. Depois é só calcular. Barato: de 180 por 150 reais. Atualização gratuita.

O problema é que está fórmula só calcula a distância em linha reta e não serve para calcular distâncias rodoviárias...

Alternativa ao GoogleMaps para distância entre 2 pontos

Enviado: 07 Jun 2020 19:47
por sygecom
Você pode usar OpenStreet map, vai precisar hospedar um link de consulta, mas não muito complicado.

https://www.openstreetmap.org/