GMap - Primefaces

5 respostas
J

Bom dia,

Estou desenvolvendo uma aplicação web (JSF e Primefaces) e estou com um problema, estou exibindo marcadores de endereço no Gmap.
Eu consigo exibir pelas coordenadas. porem eu tenho uma base de dados que não tem essas coordenadas.

  • Tenho uma base de dados de CEP, que tem - cep, endereço, cidade, tipo do endereço e bairro.
  • Estou querendo adicionar os pontos a partir dos endereços que tenho em base.

Obrigado.

5 Respostas

W

Você precisa geocodificar os endereços. O google tem web services para isto, veja:

Apenas atente para questões de licença, tanto dos mapas quanto destes web services. Em diversos casos você tem que pagar pra usar.

J

Boa noite,

Entendi, dei uma estudada nesse API e implementei no meu código.
Agora estou com a seguinte duvida:

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=MINHAKEY"
        type="text/javascript"></script>
        <script type="text/javascript">
    //<![CDATA[

    var map;
    var geocoder = null;
    var addressMarker;
    var addresses = [ 
    "julio mori, 592 - ourinhos",                       // AQUI //
    "para, 612 - ourinhos",
    ];
    var numGeocoded = 0;

    function geocodeAll() {
      if (numGeocoded < addresses.length) {
        geocoder.getLocations(addresses[numGeocoded], addressResolved);
      }
    }

   function addressResolved(response) {
     var delay = 0;
     if (response.Status.code == 620) {
       // Too fast, try again, with a small pause
       delay = 500;
     } else {
       if (response.Status.code == 200) {
         // Success; do something with the address.
         place = response.Placemark[0];
         point = new GLatLng(place.Point.coordinates[1],
                             place.Point.coordinates[0]);
         marker = new GMarker(point);
         map.addOverlay(marker);
       }
       // Move onto the next address; this skips bad addresses, too.
       numGeocoded += 1;
     }
     window.setTimeout(geocodeAll, delay);
   }

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(-22.969773, -49.853210), 13);
        map.setMapType(G_HYBRID_MAP);

        geocoder = new GClientGeocoder();
        geocoder.setCache(null);
        window.setTimeout(geocodeAll, 50);
      }
    }

    //]]>
    </script>

  
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 855px; height: 600px"></div>
  </body>

Onde eu comentei no código AQUI, eu gostaria de trazer uma lista do meu Banco de dados como por exemplo 10 pontos,
porem não consegui jogar o sql dentro do script alguém pode me ajudar?

W

Você não joga o SQL dentro do script. Você faz uma requisição ao seu servidor que retorna, possivelmente no formato JSON, a lista de endereços.

J

Tem algum exemplo? Nunca utilizei o JSON!

J

Alguem tem algum exemplo? Obrigado.

Criado 6 de maio de 2013
Ultima resposta 15 de mai. de 2013
Respostas 5
Participantes 2