Foros del Web » Programando para Internet » Javascript »

No me funciona código para leer coordenadas de un string y presentarlas en GoogleMaps

Estas en el tema de No me funciona código para leer coordenadas de un string y presentarlas en GoogleMaps en el foro de Javascript en Foros del Web. Hola, la idea es leer por medio de javascript las etiquetas de un blog (entre las cuales se encuentra las coordenadas), luego pasarlas como parametro ...
  #1 (permalink)  
Antiguo 10/01/2010, 18:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
No me funciona código para leer coordenadas de un string y presentarlas en GoogleMaps

Hola, la idea es leer por medio de javascript las etiquetas de un blog (entre las cuales se encuentra las coordenadas), luego pasarlas como parametro a la api(?) de Google Maps para que me aparezca un mapita.

Según yo lo siguiente debiera funcionar (pero no lo hace):

Código:
  <head> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA1XeAYyd-P_Ccn6bAluyCIRQtNytlzrglaCR_ewOv9N_7M7OiSxR0hxdBHBn1Kq_myCNrHTVe3TxJpQ" 
            type="text/javascript"></script> 
    <script type="text/javascript"> 
 
    var map;
 
    function verMapa() {
      map = new GMap2(document.getElementById("map_canvas"));
      map.setUIToDefault();
      map.setCenter(new GLatLng(centro()), 15);
	  map.addOverlay(new GMarker(centro()));
	}

function centro(){
var imput1 = document.getElementById("content-tags").getElementsByTagName('input')[0];
var coordenada = imput1.value.split(/\(|\)/)[1];
return coordenada;
}

    </script> 
  </head> 
 
  <body onload="verMapa()">
  
    <div id="map_canvas" style="width: 200px; height: 400px"></div>

<div id="content-tags"><div class="form-item label-etiquetas"> <span class="label"><label for="auto-complete-1917372">Etiquetas</label></span><br/><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 id="autocomplete-1917372" class="autocomplete " style="display: none;"/>
 <div class="description">Puedes agregar más de una etiqueta separándolas con comas. Ejemplo: <i>cumpleaños,amigos,mi casa</i></div>
</div>
</div>

  </body>
Me explico, el div cuyo id es "content-tags" y todo su contenido viene con el blog y no lo puedo modificar, el código javascript carga el motor de Google Maps y toma como parámetro de coordenadas la función "centro()", la función centro lee el value del input donde están las etiquetas y separa las coordenadas....

¿En donde me equivoco?
Gracias, cualquier ayuda sirve
  #2 (permalink)  
Antiguo 10/01/2010, 18:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: No me funciona código para leer coordenadas de un string y presentarlas en

Ups! pongo el mismo código, pero coloreado :)

Código Javascript:
Ver original
  1. var map;
  2.  
  3.     function verMapa() {
  4.       map = new GMap2(document.getElementById("map_canvas"));
  5.       map.setUIToDefault();
  6.       map.setCenter(new GLatLng(centro()), 15);
  7.       map.addOverlay(new GMarker(centro()));
  8.     }
  9.  
  10. function centro(){
  11. var imput1 = document.getElementById("content-tags").getElementsByTagName('input')[0];
  12. var coordenada = imput1.value.split(/\(|\)/)[1];
  13. return coordenada;
  14. }

Código HTML:
Ver original
  1. <body onload="verMapa()">
  2.  
  3.     <div id="map_canvas" style="width: 200px; height: 400px"></div>
  4.  
  5. <div id="content-tags"><div class="form-item label-etiquetas"> <span class="label"><label for="auto-complete-1917372">Etiquetas</label></span><br/><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 id="autocomplete-1917372" class="autocomplete " style="display: none;"/>
  6.  <div class="description">Puedes agregar más de una etiqueta separándolas con comas. Ejemplo: <i>cumpleaños,amigos,mi casa</i></div>
  7. </div>
  8. </div>
  9.  
  10.   </body>
  #3 (permalink)  
Antiguo 10/01/2010, 20:54
 
Fecha de Ingreso: octubre-2009
Ubicación: Catamarca
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: No me funciona código para leer coordenadas de un string y presentarlas en

La verdad no entiendo exactamente que es lo que quieres hacer, podrias postear la direccion del archivo de prueba para ver de que se trata. Si se trata de agregar marcadores a un mapa de Google vas por el camino equivocado, para ello se debe trabajar con el API de Google Maps, si es eso tengo alguna idea de como hacerlo.
  #4 (permalink)  
Antiguo 11/01/2010, 14:41
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 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 ;)
  #5 (permalink)  
Antiguo 11/01/2010, 15:15
 
Fecha de Ingreso: octubre-2009
Ubicación: Catamarca
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: No me funciona código para leer coordenadas de un string y presentarlas en

Bueno creo que el problema es que le estas mandando a una funcion del API una cadena de texto(una sola) cuando deberias pasarles dos parametros: La funcion centro() de vuelve una cadena de caracteres con la longitud y la latitud, pero para que GLatLng() debes utilizar dos variables numericas y no una sola string: GLatLng(lat:Number, lng:Number, unbounded?:Boolean)

Un ejemplo:

Código:
//Funcion para agregar marcadores
function createMarker(point,name,html) {
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.shadow = "shadow50.png";
markerOptions = { icon:blueIcon };
var marker = new GMarker(point,markerOptions);
GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html);});
return marker;
}

//Centrado y altura 5
map.setMapType(G_HYBRID_MAP);
map.setCenter(new GLatLng(40.420088,-3.688810), 5);

//Agregando un marcador
var point = new GLatLng(40.420088,-3.688810);
var marker = createMarker(point,'ID','html');
map.addOverlay(marker);
Puede que omita algun punto y coma, la verdad que asi lo hacia yo pero como le saque de entremedio un monton de PHP nunca se sabe.
  #6 (permalink)  
Antiguo 12/01/2010, 14:33
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: No me funciona código para leer coordenadas de un string y presentarlas en

Efectivamente, el problema es por que paso mal las variables (la función centro()). Haré otra pregunta pero esta vez más específica. Gracias por la ayuda :)

Etiquetas: coordenadas, googlemaps, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:37.