Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/05/2015, 13:40
Avatar de SirZoX
SirZoX
 
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Respuesta: Problema con la api de google maps

Gracias txemaarbulo.

Pero todo el código que me has puesto, corrígeme si me equivoco (entiendo poco de js), pero únicamente lo que hace es que el icono por defecto, lo sustituirá por otra imagen no?

En cuanto al tema de los datos desde php, muchas veces yo también recupero los datos desde inputs hidden, pero en este caso, tengo que sacar las coordenadas desde una base de datos y con un bucle me parece más óptimo que volcar la info directamente en un input para luego recuperarla no?

Creo que el problema no viene por la imagen sino más bien por alguna otra cosa.

A ver si algo más de código ayuda a ver dónde está el problema.


funcion localize();
Código:
  var latitud = pos.coords.latitude;
  var longitud = pos.coords.longitude;
  var precision = pos.coords.accuracy;

  var contenedor = document.getElementById("map")

  var centro = new google.maps.LatLng(latitud,longitud);


  var propiedades =
  {
      zoom: 7,
      center: centro,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  var map = new google.maps.Map(contenedor, propiedades);


      var marcador = new google.maps.Marker({
      position: centro,
      map: map
  });
Prueba 1. No muestra el marker1, pero la función localize() funciona bien. Y no tiene imagen ni nada raro, debería mostrar el punto rojo por defecto.
Código:
<script> 
localize(); 
        var pos1 = new google.maps.LatLng(38.675921, -0.210401);
        var marker1 = new google.maps.Marker({
           position: pos1 ,
           map:map
        });     
</script>
Prueba 2. Copio el contenido del <script> excepto la llamada a localize(), y lo pego dentro del código de la propia funcion localize(), quedando así.

Código:
  var latitud = pos.coords.latitude;
  var longitud = pos.coords.longitude;
  var precision = pos.coords.accuracy;

  var contenedor = document.getElementById("map")

  var centro = new google.maps.LatLng(latitud,longitud);

  var propiedades =
  {
      zoom: 7,
      center: centro,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  var map = new google.maps.Map(contenedor, propiedades);

  var marcador = new google.maps.Marker({
      position: centro,
      map: map
  });


   /* añadido manualmente */
        var pos1 = new google.maps.LatLng(38.675921, -0.210401);
        var marker1 = new google.maps.Marker({
           position: pos1 ,
           map:map
        });
Y en este caso, tócate las narices, sí que muestra los dos puntos en el mapa.
Podría hacerse con ajax? sí, seguro que puedo hacer una llamada a un php que me retorne el array de datos de la consulta SQL y con js hacer el bucle que necesito y generar todas las posX, posY...posN y markerX, markerY... markerN para que el mapa las muestre desde dentro de la propia funcion localize(), pero 1: no sé ajax, y 2: quisiera entender porqué tal como lo estoy haciendo ahora no funciona XD