Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/01/2010, 14:41
RodrigoG
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 5 meses
Puntos: 11
Respuesta: No me funciona código para leer coordenadas de un string y presentarlas en

Gracias, en realidad está complicado (por no decir mal redactado). Tratare de explicarme mejor:

1) Quiero colocar un mapa de Google Maps.
2) Quiero agregar un marcador a ese mapa.
3) Las coordenadas del marcador se leen de una cadena
4) La cadena está dentro de un input, entre paréntesis.
5) No puedo modificar el código del input.

Cada página distinta tiene un valor distinto en el input, por tanto el código debe ser capaz de leer el valor de este y poner el mapa centrado en el marcador.

Para eso primero tengo la api de Google:
Código Javascript:
Ver original
  1. /* Llamada a la clave de la API */
  2. <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA1XeAYyd-P_Ccn6bAluyCIRQtNytlzrglaCR_ewOv9N_7M7OiSxR0hxdBHBn1Kq_myCNrHTVe3TxJpQ"
  3.             type="text/javascript"></script>
  4.  
  5. /* Código para mostrar el mapa */
  6.     <script type="text/javascript">
  7.  
  8.     var map;
  9.  
  10.     function verMapa() {
  11.       map = new GMap2(document.getElementById("map_canvas"));
  12.       map.setUIToDefault();
  13.       map.setCenter(new GLatLng(centro()), 15);
  14.       map.addOverlay(new GMarker(centro()));
  15.     }
  16. </script>

Donde dice "centro()" debiera ir las coordenadas. En este caso se llama la función centro.

FUNCIÓN CENTRO
La función centro lee el string, separa las coordenadas y las retorna. (En este caso, el centro retorna "-23.5859012, -70.3747365")
Código Javascript:
Ver original
  1. function centro(){
  2. // recoge el valor del input:
  3. var imput1 = document.getElementById("content-tags").getElementsByTagName('input')[0];
  4. // Rompe el input en donde exista un "(" o un ")" y guarda las coordenadas:
  5. var coordenada = imput1.value.split(/\(|\)/)[1];
  6. return coordenada;// Retorna las coordenadas.
  7. }

Ahora está el código html, pondre solamente lo relevante (el input que contiene la cadena)
Código HTML:
Ver original
  1. <body onload="verMapa()">
  2.  
  3. <! -- El div "map_canvas" muestra el mapa -->
  4.     <div id="map_canvas" style="width: 200px; height: 400px"></div>
  5.  
  6. <!-- En éste div se encuentra el input con la cadena. No tengo permiso para modificar éste código -->
  7. <div id="content-tags"><input type="text" method="tagComplete" value="Mapa,(-23.5859012, -70.3747365),ejemplos de anuncio, </a>Destacado" size="50" maxlength="255" name="edit[tags]" id="auto-complete-1917372" class="text-field  " autocomplete="off"/></div>
  8.  
  9.   </body>

Para probar el código lo hago en
No tengo el código en un archivo :( , soy novato y aún no me arriesgo a pagar un host, en todo caso puedes ver el código en funcionamiento y en tiempo real en la página http://htmledit.squarefree.com, allí sólo se pega el código y se ve el funcionamiento. En el primer post puse el código html completo (con el head y el body).

En realidad cualquier consejo me servirá de ayuda, gracias ;)