Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2010, 17:34
MoebiusDigital
 
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 262
Antigüedad: 16 años, 11 meses
Puntos: 1
API de Google Maps me arroja resultados diferentes en cada recarga

Buenas, foreros. Estoy desarrollando un listado de hoteles en Buenos Aires que muestre los resultados en un mapa. Son unos 200 hoteles. Tengo el listado en un XML.

Todo funciona aparentemente bien, pero cada vez que cargo el mapa me muestra resultados difrenentes: a veces encuentra una dirección, a veces no.

Este es el script que estoy utilizando:

Código Javascript:
Ver original
  1. <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAvs3puZxv_vmSbRPOvcGWFxSnL-NKnSKL33Aw_xTNevEzng2XdhRzzI10B3ozr2UW5WQHkJzpdKxIWw"
  2.        type="text/javascript"></script>
  3. <script type="text/javascript">
  4.     //<![CDATA[
  5.  
  6.     var iconHotel = new GIcon();
  7.     iconHotel.image = '../img/mapa/icono.png';
  8.     iconHotel.iconSize = new GSize(24, 24);
  9.     iconHotel.iconAnchor = new GPoint(18, 12);
  10.     iconHotel.infoWindowAnchor = new GPoint(5, 1);
  11.     var encontrados = 0;
  12.     var noEncontrados = 0;
  13.     var customIcons = [];
  14.     customIcons["hotel"] = iconHotel;
  15.    
  16.     var geocoder = new GClientGeocoder();
  17.    
  18.     function mostrarPunto(map, address, id, name, tel){
  19.         var notFound = document.getElementById('notfound');
  20.         var found = document.getElementById('found');
  21.         var cantNotFound = document.getElementById('cantNoEncontrados');
  22.         var cantFound = document.getElementById('cantEncontrados');
  23.         geocoder.getLatLng(address,function(point) {
  24.               if (point){
  25.                 found.innerHTML = found.innerHTML + address +'<br />';
  26.                 encontrados++;
  27.                 cantFound.innerHTML = encontrados;
  28.                 var marker = new GMarker(point, customIcons['hotel']);
  29.                 var html = "<b><a href=\"../hoteles.php?id="+id+"\">" + name +"</a>" + "</b> <br/>" + address + "<br />Tel: " + tel;
  30.                 map.addOverlay(marker);
  31.                 GEvent.addListener(marker, 'click', function() {
  32.                     marker.openInfoWindowHtml(html);
  33.                   });
  34.               } else {
  35.                   notFound.innerHTML = notFound.innerHTML + address +'<br />';
  36.                   noEncontrados++;
  37.                   cantNotFound.innerHTML = noEncontrados;
  38.               }
  39.             }
  40.         );
  41.     }
  42.  
  43.     function load() {
  44.       if (GBrowserIsCompatible()) {
  45.         var map = new GMap2(document.getElementById("map"));
  46.         map.addControl(new GSmallMapControl());
  47.         map.addControl(new GMapTypeControl());
  48.         map.setCenter(new GLatLng(-34.6091719,-58.4101935),10);
  49.  
  50.         GDownloadUrl("phpsqlajax_genxml.php", function(data) {
  51.           var xml = GXml.parse(data);
  52.           var markers = xml.documentElement.getElementsByTagName("marker");
  53.           for (var i = 0; i < markers.length; i++) {
  54.           //for (var i = 0; i < 20; i++) {
  55.             var id = markers[i].getAttribute("id");
  56.             var name = markers[i].getAttribute("name");
  57.             var address = markers[i].getAttribute("address");
  58.             var tel = markers[i].getAttribute("tel");
  59.             mostrarPunto(map, address,id,name,tel);    
  60.           }
  61.         });
  62.       }
  63.     }
  64.     //]]>
  65.   </script>
  66. <div id="map" style="width: 1000px; height: 700px"></div>

¿Alguna idea? ¡Gracias!
__________________
Moebius Digital | La pieza que faltaba
Diseño web | Web hosting