Pergunta

Em primeiro lugar gostaria de dizer que eu sou novo a este site, nunca trabalhou com o Google Maps API e ter um conhecimento intermediário de JavaScript.

O que eu fiz: Eu coloquei um costume 'localizador de lojas', adicionando locais para a Google 'meus mapas'. Eu, então, criou uma página web com um menu drop-down e, dependendo da localização que seleccionar a partir do drop-down, ele muda o SRC para o iFrame segurando o mapa. Então, quando a página é carregada você vê um mapa maior escala e seleccionando locais específicos, ele vai mudar o mapa para que local específico (zoom e colheita).

O que eu preciso fazer: O que eu preciso fazer agora para completar este mapa é adicionar uma 'busca por código postal', que permitirá que o usuário para colocar em seu código postal e tem a página web retornar uma lista dos locais mais próximos e espero que as suas distâncias.

Alguém tem uma idéia se vou ser capaz de adicionar a funcionalidade 'pesquisar por zip' para meu costume Google mapa?

Há realmente não é muito para o meu código de post, mas se ele vai ajudar, eu vou com prazer fazê-lo. A funcionalidade atual do meu mapa funciona muito bem, o problema é que eu não sei por onde começar adicionando a busca do código postal.

Aqui está um link para a página que eu estou me referindo: http://74.53.82.155/ store-locator.htm

Qualquer ajuda é apreciada.

Agradecemos antecipadamente, gnrlchaos

Foi útil?

Solução

Uma opção é usar o serviço web GeoNames que retorna localizações de zip códigos . Aqui está um exemplo rápido de como usar esse serviço web com dojo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="layout.css">
        <script type="text/javascript">var djConfig = { parseOnLoad: true }</script>
        <script type="text/javascript" src="../dojo-release-1.3.0/dojo/dojo.js"></script>
        </script>
        <script type="text/javascript">
            dojo.require("dojo.io.script");
                function getPlace() {
        var zip = dojo.byId('zipcode').value;
        console.log('zip is ', zip);
        //use country code to get results for a specific country
        //var gn_url = 'http://ws.geonames.org/postalCodeLookupJSON?postalcode=' + zip + '&country=US';
        var gn_url = 'http://ws.geonames.org/postalCodeLookupJSON?postalcode=' + zip;
        console.log(gn_url);
        dojo.io.script.get({
          url: gn_url, 
          callbackParamName: "callback",
          load:function(response, io) { 
            console.log('got json.'); 
            console.dir(response); 
            places = response.postalcodes; 
            var infos = []
            dojo.forEach(places, function(p, i) {
                infos[i] = p.placeName + ', ' + p.adminName1 + ', Lat: ' + p.lat + '; Long: ' + p.lng + '<br />';
            });
                dojo.byId('postalCode').innerHTML = infos.join('');
          }, 
          error:errorCb
        });   
        }

        function errorCb(type, data, evt){
                debug(data);
        }
         </script>
     </head>
     <body class="tundra">
    Enter a zip code: <input id="zipcode" type="text" /> <button onclick="getPlace(); return false;" value="Find Place.">Find Place.</button>
      <div>Places:</div><div id="postalCode"></div>
    </body>
</html>

Outras dicas

Eu não sei de nenhuma maneira de interagir com um Google Map incorporado na maneira que você quer. A melhor opção seria a de criar o seu próprio mapa com a Google Maps API . Google tem algum grande documentação e exemplos para você começar.

Ei, eu estou trabalhando em uma pesquisa semelhante também. eu encontrei uma boa discussão muito da matemática envolvida, bem como links para consultas e fórmulas, aqui: http: / /uclue.com/?xq=2861 . espero que isso ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top