[SP-pm] Mapas
Lindolfo Rodrigues
lorn at lornlab.org
Sat Aug 31 15:13:06 PDT 2013
Recomendo usar GIST para guardar a localização Postgres e Mongodb suportam.
Só 1 deles é banco de dados, escolha com sabedoria :)
—
Lorn
On Sat, Aug 31, 2013 at 6:56 PM, Hernan Lopes <hernanlopes em gmail.com>
wrote:
> Segue um exemplo prático da fórmula de haversine... essa fórmula calcula a
> distância entre duas coordenadas com latitude e longitude.
> O exemplo abaixo demonstra o cálculo da distância entre são paulo e nova
> york:
> Se fizer o mesmo procedimento no google maps, vai ver que o valor é igual.
> abs,
> Hernan
> use strict;
> use warnings;
> use GIS::Distance;
> use Data::Printer;
> my $gis = GIS::Distance->new();
> $gis->formula( 'Haversine' );
> my $cidade = {
> new_york => {
> lat => 40.697169,
> lon => -74.052658
> } ,
> sao_paulo => {
> lat => -23.548943 ,
> lon => -46.638818
> }
> } ;
> my @partida = ( $cidade->{ new_york }->{ lat }, $cidade->{ new_york
> }->{ lon } );
> my @destino = ( $cidade->{ sao_paulo }->{ lat }, $cidade->{
> sao_paulo }->{ lon } );
> my $distance = $gis->distance( @partida => @destino );
> warn "A distância entre Nova york e São Paulo é: " , $distance->{ values
> }->{ $distance->{unit} } , " ", $distance->{unit};
> 2013/8/31 Hernan Lopes <hernanlopes em gmail.com>
>> De qualquer maneira, dadas duas coordenadas, a fórmula da distância de
>> haversine vai te dar a resposta.
>>
>> É só vc usar este módulo com a opcão "Haversine" e as coordenadas,
>> conforme: https://metacpan.org/module/GIS::Distance
>>
>>
>>
>>
>> 2013/8/31 Blabos de Blebe <blabos em gmail.com>
>>
>>> Obrigado Stan, vou dar uma olhada.
>>>
>>> Desculpe se a pergunta é idiota, mas tem binding disso em Perl?
>>>
>>>
>>> 2013/8/31 Stanislaw Pusep <creaktive em gmail.com>
>>>
>>>> Tem API do Google para isso, o Distance Matrix:
>>>>
>>>> var service = new google.maps.DistanceMatrixService();
>>>> service.getDistanceMatrix({
>>>> origins: players,
>>>> destinations: players,
>>>> travelMode: google.maps.TravelMode.WALKING,
>>>> }, function (response, status) {
>>>> if (status == google.maps.DistanceMatrixStatus.OK) {
>>>> var origins = response.originAddresses;
>>>> var destinations = response.destinationAddresses;
>>>> ...
>>>> }
>>>> });
>>>>
>>>>
>>>>
>>>> 2013/8/31 Blabos de Blebe <blabos em gmail.com>
>>>>
>>>>> Fala pessoal,
>>>>>
>>>>> Eu estou fazendo mais um trabalho final na faculdade ( é, eu sei, é o
>>>>> segundo, longa história... ) e vou precisar integrar com uma api de mapas.
>>>>>
>>>>> O trabalho é um site pra ajudar jogadores de magic, e uma das ajudas é
>>>>> encontrar a loja mais próxima.
>>>>>
>>>>> Eu nunca mexi com mapas antes então gostaria que vocês me apontassem
>>>>> documentação, módulos, dicas etc.
>>>>>
>>>>> Basicamente o que eu preciso é plotar lojas no mapa e calcular
>>>>> distâncias entre elas e entre os jogadores, da mesma forma que o locator da
>>>>> wizards faz:
>>>>>
>>>>>
>>>>> http://locator.wizards.com/#brand=magic&a=search&p=20550-060&c=-23.7246761476923,-46.57210253923074&massmarket=no
>>>>>
>>>>> Parto do pressuposto que eu sei pelo menos o CEP de todo mundo.
>>>>>
>>>>> Qualquer ajuda é bem vinda.
>>>>>
>>>>> []'s
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> =begin disclaimer
>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>>
>>>>
>>>> =begin disclaimer
>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>>
>>>
>>> =begin disclaimer
>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130831/f04a033f/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list