Google Maps api ou equivalente

17 respostas
O

Olá pessoal do GUJ,
Sou novo aqui no fórum e não tenho certeza se é o local correto para postar a minha dúvida. Estou iniciando o meu TCC esse semestre e estou com um problema, eu trabalho com roteamento de veículos e estou querendo levar o problema para um lado mais prático. Para isso eu preciso desenvolver uma forma de calcular a matriz distância para o problema utilizando dados de locais reais. O problema é como automatizar esse calculo sem ter que fazer tudo “na mão”. O google maps possui a api Directions que poderia me auxiliar a resolver o meu problema, porém, os limites de acesso que ele impõe vão “quebrar minhas pernas” pra resolver o meu problema. O que eu necessito é alguma ferramenta que eu possa, dada as coordenadas geográficas de vários clientes, saber a menor distância entre cada um deles para que eu possa rodar o meu algoritmo de roteamento e calcular a menor rota. Por exemplo:

Eu tenho 29 clientes e o depósito. Então eu preciso saber a distância entre:
depósito e 1º cliente,
depósito e 2º cliente,

depósito e 29º cliente,

1º cliente e depósito (obs: ainda pode ser diferente da distância entre depósito e 1º cliente, devido a questões de mão e contra-mão da via)
1º cliente e 2º cliente,

29º cliente e 28º cliente

Através dessa informação que eu iria gerar a matriz de distâncias e colocar no meu algoritmo para calcular as rotas de acordo com o numero de veículos. Se alguém tiver uma opinião
à respeito disso eu fico agradecido.
Desde já obrigado pela atenção.

17 Respostas

F

Boa tarde

Cara, as ferramentas que calculam a distancia entre dois pontos (MapServer) não irão levar em contas roteamento, altitude e etc. A unica ferramenta, que eu conheço, que faz isso, hoje, é a api do google maps.
mas se você não precisar levar em conta rotas e etc, o MapServer é muito bom, mas é para php.

Abraços

O

Olá, obrigado pela resposta.
Por enquanto eu desejo somente mesmo a distancia, pois o roteamento fica a cargo do algoritmo que eu já desenvolvi. Vou dar uma olhada nesse MapServer, mas se existir alguma solução em java eu ainda prefiro, porque não sou muito fã de php.

F

então da uma olhada em GeoServer, é para java. http://www.fernandoquadro.com.br/html/geoserver/

PS: Da para trabalhar MapServer com java também, só que ele se dá muito melhor com PHP

O

Vou dar uma olhada tbm, mas só uma pergunta, no geoserver e no mapserver, se eu for calcular essas distâncias, elas serão retornadas em linha reta ou através da distância percorrida em uma estrada?

F

em linha reta, eles não tem os dados de roteamento como na api do google maps

O

Ha entendi, então pelo que parece vai ser difícil de fugir do google maps. O jeito vai ser tentar driblar os limites que ele impõe.

F

eaew cara =)

To com o mesmo problema aqui na empresa onde faco estagio. Comecei, a partir do dia 14 desse mes, a elaborar um sistema para solucionar o problema do caixeiro viajante com java. =/

No entanto, a limitacao do google directions do google maps ta quebrando minhas pernas. Eu fiz 3 over queries por tres dias seguidos (embora eu nao tivesse atingido o limite de 2500 consultas). Hoje eu nao fiz nenhuma consulta, mas mesmo assim o google me bloqueou… depender do google eh um lixo.

O pior de tudo, eh que ta quase tudo pronto ^^

A solucao seria rodar a solucao nos clientes, porem, na empresa aqui nao iria adiantar, pois todos os clientes possuem o mesmo IP para a Internet e, ainda que fossem IPs distintos, tem-se no maximo apenas tres clientes =)

Outra solucao que idealizada aqui seria explorar os waypoints (no maximo 8 ) para preencher a matriz.

Voce conseguiu driblar os limites?

t+!

O

Cara eu não terminei o meu programa ainda, mas se você disparar muitas requisições repetidas, o Google irá bloquear o ip para fazer requisições. Você terá que colocar um deley entre as requisições, pois assim o Google não irá bloquear o ip. Eu li isso em uma monografia que eu peguei na internet, lá o autor (que não me lembro o nome) disse que teve que colocar um deley de 40s entre as requisições para não ser bloqueado, mas eu ainda não fiz testes com várias requisições ao mesmo tempo, mas pode ser que esse valor possa ser reduzido.

F

Bom dia Otavio, na verdade o google vai bloquear seu IP após 15 mil requisições, e, infelizmente, se você fizer 2 requisições muito próximas ele retorna o ‘status 620’, então é necessário fazer o delay que você mencionou
mas acho que 15 mil é bastante requisição.

F

aah você pode usar o tracksource também, que é aberto,
se quiser dar uma olhada http://www.tracksource.org.br/

O

Olá vou da uma olhada no Tracksource. Mas a propósito, qual api permite fazer 15mil requisições, porque a api directions, como fala em http://code.google.com/intl/pt-BR/apis/maps/documentation/directions/ , permite apenas 2500.

F

Ahh foi mal, eu confundi as coisas. Você pode fazer 15 mil requisições por dia via HTTP (para migração de dados).
Que eu vi aqui http://code.google.com/intl/pt-BR/apis/maps/articles/phpsqlgeocode.html

O

Olá denovo, eu não estou entendendo muito bem como que funciona o Tracksource. Eles possuem alguma api para que eu possa fazer estas requisições?

F

Pessoal, testei utilizar um dalay de 40s entre cada requisição no google, porem ele continuou a me bloquear, depois aumentei o tempo para 45s e continuo sendo bloqueado, alguem tem um numero definitivo?

obs: estou tentando gerar uma matriz com os tempos de rotas entre destinos, porém o google me bloqueia sempre. O máximo que consigo fazer sao 189 requisiçoes, o que para uma matriz que precisa de 3969requisiçoes, nao é um valor tao significante.

A

Bom dia, estou a procura de uma API para traçar rotas entre pontos de menor distância. Gostaria alguma coisa robusta e estável para utilização na minha aplicação WEB, onde o formato do mapa é de extensão GDB.
Obrigado.

M

Olá pessoal parabéns pelo fórum!

Tenho uma dúvida e ficarei muito grato caso vocês possa me ajuda. A dúvida é a seguinte:

Consigo fazer uma requisição de rota entre dois pontos para o Google, obter e decodificar a polyline recebida, bem como obter as coordenadas da polyline e traça a rota no mapa. O meu objetivo agora é montar uma consulta que apresenta essas rotas para um determinado usuário dependendo da proximidade dele com alguma das coordenadas dessas rotas (500 metro por exemplo). Ou seja o servidor mostra as opções de rotas próximas a ele independente da direção e sentido. Caso eu pegue as coordenado do usuário e faça uma consulta em todas as coordenadas de rotas armazenadas no banco de dados, com certeza vou obter um resultado, porém essa não é a forma mais otimizada de se realizar essa consulta caso eu tenha milhões de coordenadas de rotas.

Em fim a dúvida: como posso otimizar uma consulta para que o meu servidor com base nas coordenadas do usuário, faça uma pesquisa apenas em rotas que possam esta próxima dele ao invés de pesquisar as coordenadas de todas as rotas existentes no banco de dados?

P

Olá pessoal…

Eu trabalho em uma seguradora de renome e atualmente desenvolvi um sistema que le as coordenadas do BD e reproduz no googlemaps sua rota de saída e chegada… ele mostra todos os pontos no mapa… MAS… mostrar todos os endereços ele não mostra… mostra apenas uns 5 ou 6… o Google limitoou estes acessos por causa das empresas que não compravam seus serviços (aqui comprava, agora usamos outra empresa) então foi uma medida de segurança, até os delays que usavam para burlar esses bloqueios eles arrumaram.

É isso que tenho… mostro os pontos no mapa com o endereço e número do ponto específico… mas mostrar todos em tela não faz mais que 5

se quiser algo assim te envio

Criado 5 de agosto de 2011
Ultima resposta 1 de abr. de 2014
Respostas 17
Participantes 7