Pesquisa Por Raio Do Ponto De Origem

Olá Pessoal

Gostaria de uma pequena ajuda de vcs, eu estou desenvolvendo um sistema a onde o usuario digita o seu cep e o sistema tras os estabelimentos mais proximo da sua localização tipo num raio de 2km.

Alguem poderia me ajudar onde eu encontro algo parecido.

Agradeço

Edson

Edson,

Depende de N fatores, você vai precisar ter uma base da dados com os estabelecimentos cadastrado.

Eu já vi sistema usando o google maps, mais eles tinha os orgãos públicos tudo cadastrado.

Agora assim, fazer que nem GPS ai já não sei se é possivel, colocar o CEP e saber um estabelecimento próprio.

é estou vendo a google maps… vamos ver se ta certo!

Valew

Se você tiver o cadastros dos estabelecimentos é moleza.

É so criar o array do gmaps e a cordenada atual, ele vai mostrar o seu ponto, e todos os estabelecimentos no mapa.

Esse caminho é bom se seu alvo é gerar uma mapa. Mas existe various outros situacoes aonde voce quer um groupo de resultados (sem mapa nehuma) para gerar listas ou para outros fins.

Exemplo: um banco de dados com ofertas de empregos aonde o usario pode buscar ofertas de emprego de um certain raio de distancia do ponto do origem dele.

Um estrategia para isso pode ser assim:

tabella (de empregos) com campos

lon (longitude)

lat (latitude)

(nesses campos voce pode inserir os valores na hora que o editor salva a oferta. Voce pode resolver as coordinatas atravers do endereco de emprego utilizando o google api.

A grande vantagem é que o "geo-resolving" nao tem quer ser feito na hora da busca para cada oferta. Pense nisso como "geocaching" ;-), sem isso a sua aplicacao vai ser muito lento se tem muitos empregos para resolver)

O usario (que busca emprego) no outro lado (no Frontend) tem que informar seu ponto do origem (como no seu exemplo atravers do CEP). O geo-resolving dessa posicao tem que ser feito em tempo real se se trata de uma busca no site. Mas é um request so, entao isso nao vai gerar problemas de performance (afinal aqui voce tambem pode implementar um caching para cada CEP ja resolvido para acelerar as coisas)

Agora voce conhece lat/lon dos dois pontos. A distancia (em km) entre esses dois pontos é calculdao da seguinte forma:




$distance_between_points=round(acos(sin(deg2rad($lat_1))*sin(deg2rad($lat_2))+cos(deg2rad($lat_1))*cos(deg2rad($lat_2))*cos(deg2rad($lon_2)-deg2rad($lon_1)))*6378.388,2);



(eu realizei isso 6-7 anos atras em forma de uma extension para o TYPO3 Framework. Nao sei se hoje ja nao existe estrategias mais modernas, mas afinal essa solucao continua sendo valido)

guaruja,

Esse CMS TYPO3 eu não conhecia, há possibilidades de criar uma extensão para o Yii?

Esse framework parece ser nao muito popular na america (do sul), embora na europa é uma das frameworks (para cms) mais populares na ultima decada. Até existe uma programa de certificacao http://certification.typo3.org/

Quando tenho projetos CMS até hoje minha escolha preferida, especialmente por que ja existe muitos plugins (extensions) para essa plataforma: Repository

Para desenvolvemento de aplicativos no outro lado prefiro Yii :)

Para dois frameworks existe uma arquitectura para plugins/extensions. Com certeza dar para combinar os dois (embora no momento nao estou vendo motivo para isso)

Logo vai aparecer Typo3 5.0 com o novo framework FLOW3 como base. O FLOW3 tambem é MVC e vai trazer various outros rich business features.