Ver Mensaje Individual
  #14 (permalink)  
Antiguo 06/11/2012, 13:47
Avatar de maximendez88
maximendez88
 
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 12 años, 2 meses
Puntos: 3
Pregunta Respuesta: unir marcadores con google maps

Cita:
Iniciado por Naahuel Ver Mensaje
Era un ejemplo... no son predefinidos. Hasta dejé el mismo nombre de la función showAddress.

Con suerte, sólo tenés que reemplazar el código nuevo y cambiar a la versión v3.

Te paso un ejemplo más elaborado. La única modificación al script que te hice anteriormente es que le saqué las llamadas a showAddress() que eran de ejemplo. Agregué un input para poner el nombre de la ciudad e ir actualizando el mapa y la línea.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <meta charset="utf-8" />
  3.  <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
  4. <title>Test Google Maps</title>
  5. </head>
  6.     <!-- MAPA -->
  7.     <div id="map_canvas" style="width: 600px; height: 600px;"></div>
  8.     <input type="text" name="ciudad" id="ciudad" /> <button onclick="agregarCiudad();">Agregar</button>
  9.    
  10.     <!-- funcion para agregar ciudad. La separo porque es sólo ejemplo -->
  11.     <script type="text/javascript">
  12.         function agregarCiudad(){
  13.             showAddress(document.getElementById('ciudad').value);
  14.             document.getElementById('ciudad').value = '';
  15.         }
  16.     </script>
  17.    
  18.     <script type="text/javascript">
  19.     //variables y objetos globales
  20.     var map             //mapa
  21.     var geocoder;       //geocoder
  22.     var _path = [];     // ruta
  23.     var _poliLinea = new google.maps.Polyline({ //polilinea
  24.         path: _path,
  25.         strokeColor: '#FF0000',
  26.         strokeOpacity: 1.0,
  27.         strokeWeight: 2
  28.     });
  29.  
  30.     //inicializo
  31.     initialize();
  32.  
  33.     function initialize() {
  34.         //centrado
  35.         var myLatLng = new google.maps.LatLng(37.4419, -122.1419);
  36.         //opciones
  37.         var mapOptions = {
  38.             zoom: 1,
  39.             center: myLatLng,
  40.             mapTypeId: google.maps.MapTypeId.TERRAIN
  41.         };
  42.         //geocoder
  43.         geocoder = new google.maps.Geocoder();
  44.         //creo mapa
  45.         map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
  46.        
  47.         //asigno polilinea al mapa
  48.         _poliLinea.setMap(map);
  49.     }
  50.  
  51.     function showAddress(s_address) {
  52.         var address = s_address;
  53.         //busco la direccion dada
  54.         geocoder.geocode( { 'address': address}, function(results, status) {
  55.           if (status == google.maps.GeocoderStatus.OK) {
  56.             //centro el mapa en el resultado
  57.             map.setCenter(results[0].geometry.location);
  58.             //creo marcador
  59.             var marker = new google.maps.Marker({
  60.                 map: map,
  61.                 position: results[0].geometry.location
  62.             });
  63.             //agrego punto a la linea
  64.             agregarRuta(results[0].geometry.location)
  65.           } else {
  66.             alert('Error: ' + status);
  67.           }
  68.         });
  69.      }
  70.      
  71.     function agregarRuta(o_punto){
  72.         //creo punto a partir de la dirección dada
  73.         var o_LL = new google.maps.LatLng(o_punto.Xa, o_punto.Ya)
  74.         //agrego el punto al array de la ruta
  75.         _path.push(o_LL);
  76.         //cargo la nueva ruta en la polilinea
  77.         _poliLinea.setPath(_path);
  78.         //centro el mapa en el último punto
  79.         map.setCenter(o_LL);
  80.         //Hago un poco de zoom
  81.         map.setZoom(6);
  82.     }
  83.     </script>
  84. </body>
  85. </html>

Ahí podés ver cómo se agrega la nueva versión de google maps. No hace falta Key, es uno de los cambios de la versión 3.

Estoy 100% seguro que se puede adaptar a tu código. Perdón, pero es toda la ayuda que te puedo dar. Creo que con el código comentado que te dí no vas a tener dudas sobre cómo hacerlo.


Como seria para que la linea que marca la ruta en vez de que sea recta... sea curva? saludos