<div dir="ltr"><div>Quanto ao CEP, é simples tambem, vc precisa fazer o seguinte para descobrir as coordenadas relacionadas a um cep... o myagawa implementou um módulo que facilita esse tipo de busca:<br><br></div><div>abs,<br>
<br></div><div>Hernan<br></div><div><br># Imprime coordenadas relacionadas a um CEP<br>use Geo::Coder::Google;<br>use Data::Printer;<br>my $cep      = "04363-040" ,<br>   $geocoder = Geo::Coder::Google->new(apiver => 3),<br>
   $location = $geocoder->geocode( location => "Brasil, cep $cep" );<br>print "A latutide e longitude para o $cep é: \n";<br>print "Latitude: ", $location->{ geometry }->{ location }->{ lat }, "\n";<br>
print "Longitude: ", $location->{ geometry }->{ location }->{ lng }, "\n";<br><br><br></div><br><div><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/31 Hernan Lopes <span dir="ltr"><<a href="mailto:hernanlopes@gmail.com" target="_blank">hernanlopes@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Ahh, e vc pode implementar em qq linguagem, é bem simples, segue implementacao em JS pra vc colar no seu firebug:<br>
<br></div>abs,<br><br></div>Hernan<br><div><div><br><pre>var to_radian = function( val ) {<br>
    return val * Math.PI / 180;<br>}<br><br>var cidade = {<br>    new_york : {<br>        lat : 40.697169,<br>        lon : -74.052658<br>    },<br>    sao_paulo : {<br>        lat : -23.548943,<br>        lon : -46.638818<br>

    }<br>};<br><br>var partida = cidade[ "new_york" ];<br>var destino = cidade[ "sao_paulo" ];<br><br>var raio_da_terra = 6371; // <a href="http://pt.wikipedia.org/wiki/Raio_da_Terra" target="_blank">http://pt.wikipedia.org/wiki/Raio_da_Terra</a><br>

var dLat = to_radian(destino["lat"]-partida["lat"]);<br>var dLon = to_radian(destino["lon"]-partida["lon"]);<br>var lat1 = to_radian(partida["lat"]);<br>var lat2 = to_radian(destino["lat"]);<br>

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +<br>        Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); <br>var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); <br>var d = raio_da_terra * c;<br>
console.log( "A distância entre Nova York e São Paulo é: " + d + " km ");</pre>
<br></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/31 Hernan Lopes <span dir="ltr"><<a href="mailto:hernanlopes@gmail.com" target="_blank">hernanlopes@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div><div>Segue um exemplo prático da fórmula de haversine... essa fórmula calcula a distância entre duas coordenadas com latitude e longitude.<br><br></div>O exemplo abaixo demonstra o cálculo da distância entre são paulo e nova york: <br>


</div>Se fizer o mesmo procedimento no google maps, vai ver que o valor é igual.<br><br></div>abs,<br><br></div>Hernan<br><div><div><div><div><br>use strict;<br>use warnings;<br>use GIS::Distance; <br>use Data::Printer;<br>


<br>my $gis             = GIS::Distance->new();<br>   $gis->formula( 'Haversine' );<br><br>my $cidade = { <br>    new_york => { <br>        lat => 40.697169, <br>        lon => -74.052658 <br>    } , <br>


    sao_paulo => { <br>        lat => -23.548943 , <br>        lon => -46.638818 <br>    } <br>} ; <br>my @partida         = ( $cidade->{ new_york }->{ lat }, $cidade->{ new_york }->{ lon } );<br>my @destino         = ( $cidade->{ sao_paulo }->{ lat }, $cidade->{ sao_paulo }->{ lon } );<br>


my $distance        = $gis->distance( @partida => @destino );<br>warn "A distância entre Nova york e São Paulo é: " , $distance->{ values }->{ $distance->{unit} } , " ",  $distance->{unit};<br>


<br><br><br></div></div></div></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/31 Hernan Lopes <span dir="ltr"><<a href="mailto:hernanlopes@gmail.com" target="_blank">hernanlopes@gmail.com</a>></span><br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">De qualquer maneira, dadas duas coordenadas, a fórmula da distância de haversine vai te dar a resposta.<br>


<br>É só vc usar este módulo com a opcão "Haversine" e as coordenadas, conforme: <a href="https://metacpan.org/module/GIS::Distance" target="_blank">https://metacpan.org/module/GIS::Distance</a><br>
<br><br></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/31 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Obrigado Stan, vou dar uma olhada.<div><br></div><div>Desculpe se a pergunta é idiota, mas tem binding disso em Perl?</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/8/31 Stanislaw Pusep <span dir="ltr"><<a href="mailto:creaktive@gmail.com" target="_blank">creaktive@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Tem API do Google para isso, o Distance Matrix:<div><br><div><div>    var service = new google.maps.DistanceMatrixService();</div>





<div>    service.getDistanceMatrix({</div><div>        origins: players,</div>

<div>        destinations: players,</div><div>        travelMode: google.maps.TravelMode.WALKING,</div><div>    }, function (response, status) {</div><div>        if (status == google.maps.DistanceMatrixStatus.OK) {</div>







<div>            var origins = response.originAddresses;</div><div>            var destinations = response.destinationAddresses;</div><div>            ...</div><div>        }</div><div>    });</div></div><div><br></div></div>







</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>2013/8/31 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>></span><br></div>

</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>

<div dir="ltr">Fala pessoal,<div><br></div><div>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.</div><div><br></div>

<div>O trabalho é um site pra ajudar jogadores de magic, e uma das ajudas é encontrar a loja mais próxima.</div><div><br></div><div>Eu nunca mexi com mapas antes então gostaria que vocês me apontassem documentação, módulos, dicas etc.</div>









<div><br></div><div>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:</div><div><br></div><div>

<a href="http://locator.wizards.com/#brand=magic&a=search&p=20550-060&c=-23.7246761476923,-46.57210253923074&massmarket=no" target="_blank">http://locator.wizards.com/#brand=magic&a=search&p=20550-060&c=-23.7246761476923,-46.57210253923074&massmarket=no</a><br>









</div><div><br></div><div>Parto do pressuposto que eu sei pelo menos o CEP de todo mundo.</div><div><br></div><div>Qualquer ajuda é bem vinda.</div><div><br></div><div>[]'s</div><div>

<br></div><div><br></div><div><br></div></div>
<br></div></div>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>
</div></div><br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>