Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2013, 11:10
ragde23fer
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 2 meses
Puntos: 3
Ubicar direcciones en Google Maps

Hola, no se si podran ayudarme al respecto, tengo una base de datos con aproximadamente 1000 direcciones, quisiera poder ubicar a estas personas en google maps, pero hacerlo al mismo tiempo, es decir:

1. Hacer una consulta con PHP de todas las direcciones.
2. Conectarme a Google maps (el cual tendria en mi web)
3. Poner un punto en cada direccion.

Alguien que sepa al respecto?

Les dejare 2 codigos, uno para buscar una direccion en Google Maps

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Autentia: dinos donde se encuentra tu empresa</title>
    <script src="AQUI VA EL API" 
            type="text/javascript"></script>
    <script type="text/javascript">

    var map;
    var geocoder;

    function initialize() {
      map = new GMap2(document.getElementById("map_canvas"));
      map.setCenter(new GLatLng(40.452557, -3.510673), 15);
      
      // insertar los controles
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      
      geocoder = new GClientGeocoder();
    }

    // addAddressToMap() is called when the geocoder returns an
    // answer.  It adds a marker to the map with an open info window
    // showing the nicely formatted version of the address and the country code.
    function addAddressToMap(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        alert("Lo sentimos, no se ha encontrado su direcci&ocute;n");
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        
        map.setCenter(point, 15);
        
        marker = new GMarker(point, {draggable: true});
        
        GEvent.addListener(marker, "dragstart", function() {
          map.closeInfoWindow();
        });

        GEvent.addListener(marker, "dragend", function() {
          document.getElementById("punto").value = marker.getLatLng().toUrlValue();
          marker.openInfoWindowHtml(place.address);
          generateKML(place.address, marker.getLatLng().lng(), marker.getLatLng().lat());
        });
        
        map.addOverlay(marker);
        marker.openInfoWindowHtml(place.address);
        document.getElementById("punto").value = marker.getLatLng().toUrlValue();
        
        generateKML(place.address, place.Point.coordinates[0], place.Point.coordinates[1]);
        
      }
    }
    
    // showLocation() is called when you click on the Search button
    // in the form.  It geocodes the address entered into the form
    // and adds a marker to the map at that location.
    function showLocation() {
      var address = document.forms[0].q.value;
      geocoder.getLocations(address, addAddressToMap);
    }

   // findLocation() is used to enter the sample addresses into the form.
    function findLocation(direccion, empresa ) {
      document.forms[0].q.value = direccion;
      document.getElementById("empresa").value = empresa;
      showLocation();
    }
    
    function generateKML(description, lng, lat){
      document.getElementById("kml").value = '';
      var kml = '<?xml version="1.0" encoding="UTF-8"?>\n';
      kml = kml + '<kml xmlns="http://earth.google.com/kml/2.2">\n';
      kml = kml + '<Placemark>\n';
      kml = kml + '\t<name>' + document.getElementById("empresa").value + '</name>\n';
      kml = kml + '\t<description>' + description + '</description>\n';
      kml = kml + '\t<Point><coordinates>' + lng + ',' + lat + ',0</coordinates></Point>\n'; 
      kml = kml + '</Placemark>\n';
      kml = kml + '</kml>\n'
      document.getElementById("kml").value = kml;
    }
    
    </script>
  </head>
<body onload="initialize()">
  
    <a href="javascript:void(0)" onclick="findLocation('Avenida de Castilla 2, San Fernando de Henares', 'Autentia');return false;">Ir a Autentia</a><br/>
    
    <p>
         <b>Escribe el nombre de tu empresa:</b>
         <input id="empresa" type="text" size="40"/>
    </p>
    
    <form action="#" onsubmit="showLocation(); return false;">
      
      <p>
        <b>Escribe aqu&iacute; tu direcci&oacute;n:</b>
        <input type="text" name="q" value="" class="address_input" size="40" />
        <input type="submit" name="find" value="Buscar" />
      </p>
    </form>
    
    <div id="map_canvas" style="width: 800px; height: 600px"></div>
    
    <p>
      <b>Coordenadas:</b>
      <input id="punto" type="text" size="40"/>
    </p>
  </body>
</html> 
Y este otro q trataba de poner

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Autentia: dinos donde se encuentra tu empresa</title>
    <script src="aqui va el api" 
            type="text/javascript"></script>
    <script type="text/javascript">
	
		function Principal(){
			var direcciones=new Array();
			direcciones[0]="Av. Santa Fe 3181";
			direcciones[1]="Av. Corrientes 3247";
			direcciones[2]="Av. Corrientes 3889";
			direcciones[3]="Av. Santa Fe 3253";
			direcciones[4]="Av. Cabildo 2202";
			direcciones[5]="Av. Rivadavia 5216";
			direcciones[6]="Brasil 1253";
			direcciones[7]="Av. Melian 4630";
			direcciones[8]="Av. Rivadavia 6502";
			direcciones[9]="Av. Rivadavia 11626";
			direcciones[10]="Florida 296";
			direcciones[11]="Av. Corrientes 756";
			direcciones[12]="Valentin Gomez 2813";
			direcciones[13]="Av. Santa Fe 2401";
			
			geocoder = new google.maps.Geocoder();
			
			for (var i = 0; i < direcciones.length; i++) {
				setDireccion(i);
			}
		}
		
		function setDireccion(INDEX) {
			var request = new Object(); //CREO UN OBJETO
			request.address = direcciones[INDEX] + ", Ciudad de Buenos Aires"; //sé que son direcciones en capital
			geocoder.geocode(request, addAddressToMap); //geocode hace la conversión a un punto, y su segundo parámetro es una función de callback
		}
		
		function addAddressToMap(response, status) {
			if(!response) return;    //si no pudo
			
			//icono que voy a usar para mostrar el punto en el mapa
			var icon = new google.maps.MarkerImage(
			"http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png",
			new google.maps.Size(20, 34),
			new google.maps.Point(0, 0),
			new google.maps.Point(10, 34)
			);
			//creo el marcador con la posición, el mapa, y el icono
			marker = new google.maps.Marker({
			'position': response[0].geometry.location,
			'map': map,
			'icon': icon
			});
			marker.setMap(map); //inserto el marcador en el mapa
		}
    
    </script>
  </head>
<body onload="Principal()">
  </body>
</html> 
Como referencia: http://blog.alebanzas.com.ar/2012/01...iones-al-mapa/

Al parecer lo hace, pero no logro acoplarlo.

Saludos.