Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Obtener coordenadas Google Maps pinchando

Estas en el tema de Obtener coordenadas Google Maps pinchando en el foro de Javascript en Foros del Web. Hola a todos, estoy intentando conseguir las coordenadas de google maps cuando un usuario pincha sobre un punto concreto del mapa. El mapa es un ...
  #1 (permalink)  
Antiguo 04/05/2015, 08:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 1 mes
Puntos: 3
Pregunta Obtener coordenadas Google Maps pinchando

Hola a todos, estoy intentando conseguir las coordenadas de google maps cuando un usuario pincha sobre un punto concreto del mapa. El mapa es un iframe introducido en la web que estoy creando, pero no se como obtenerlas, he leído documentación de Google y cada vez estoy más confuso.

Lo quiero es algo como esto, pero mucho más simple:

http://www.coordenadas-gps.com/

Es decir poner un mapa, que el usuario pueda pinchar en un sitio concreto y obtener las coordenadas para insertarlas después en la base de datos. No deseo saber donde se encuentra el usuario, sino poder guardar las coordenadas que el indique.

¿Alguien me echa una mano?

El código que tengo para mostrar el mapa es el siguiente:

Código Javascript:
Ver original
  1. google.maps.event.addDomListener(window, 'load', init);
  2.  
  3. function init() {
  4.     var mapOptions = {
  5.         zoom: 18,
  6.         scrollwheel: false,
  7.         center: new google.maps.LatLng(41.652251, -4.7245321),
  8.         styles: [{"stylers": [{"hue":"#2c3e50"},{"saturation":250}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":50},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]}]
  9.     };
  10.  
  11.     var mapElement = document.getElementById('map');
  12.     var map = new google.maps.Map(mapElement, mapOptions);
  13. }

Dicho mapa se muestra en una div que he llamado "map".

Un saludo a todos!
  #2 (permalink)  
Antiguo 05/05/2015, 10:04
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener coordenadas Google Maps pinchando

"Del arte del buen comer ..."

Hola rubiomike:

En tu código veo que trabajas estilos en el mapa, antes de saber como hacer funcionar el evento onclik que es lo que pides.

Yo no trabajo con <iframe> sino con páginas.
Tal vez puedas crear la tuya e insertarla. Esto es el google.maps.event.addListener(map, 'click', function (event) y geocoder (además de las coordenadas te proporciono la dirección).
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.   <head>
  3.     <meta charset="utf-8">
  4.     <meta name="viewport" content="width=device-width, initial-scale=1">
  5.     <title>Localización onclick</title>
  6.     <link rel="shortcut icon" type="image/ico" href="http://www.digitaleando.com/imag/logo.ico">
  7. <style type="text/css">
  8. html,body{margin:0;padding:0;width:100%;height:100%;font-family:"Trebuchet MS",verdana,arial;}
  9. #texto{width:25%;float:left;vertical-align:middle;padding: 2%;}
  10. #mapa{width:70%;height:100%;float:right;}
  11. #anuncio{bottom:16px;position:absolute;right:0;width:160px;z-index:100}
  12.     <script src="https://maps.google.com/maps/api/js?sensor=false&amp;language=es"></script>
  13.     <script>
  14. <!-- //
  15. var map;
  16. var geocoder;
  17. var infoWindow;
  18. var marker;
  19. window.onload = function () {
  20.  var latLng = new google.maps.LatLng(-34.796607,-58.466545);
  21.  var opciones = {
  22.    center: latLng,
  23.    zoom: 5,
  24.    mapTypeId: google.maps.MapTypeId.HYBRID
  25.  };
  26.  var map = new google.maps.Map(document.getElementById('mapa'), opciones);
  27.  geocoder = new google.maps.Geocoder();
  28.  infowindow = new google.maps.InfoWindow();
  29.  google.maps.event.addListener(map, 'click', function (event) {
  30.    geocoder.geocode({
  31.      'latLng': event.latLng
  32.    }, function (results, status) {
  33.      if (status == google.maps.GeocoderStatus.OK) {
  34.        if (results[0]) {
  35.          document.getElementById('direccion').innerHTML = '<br /><span style="color:#FF0099">' + results[0].formatted_address + '</span>';
  36.          document.getElementById('coordenadas').innerHTML = '<br /><span style="color:#FF0099">' + results[0].geometry.location + '</span>';
  37.          if (marker) {
  38.            marker.setPosition(event.latLng)
  39.          } else {
  40.            marker = new google.maps.Marker({
  41.              position: event.latLng,
  42.              map: map
  43.            })
  44.          }
  45.          infowindow.setContent(results[0].formatted_address + '<br/> Coordenadas: ' + results[0].geometry.location);
  46.          infowindow.open(map, marker)
  47.        } else {
  48.          document.getElementById('mensaje').innerHTML = 'No se encontraron resultados'
  49.        }
  50.      } else {
  51.        document.getElementById('mensaje').innerHTML = 'Geocodificación  ha fallado debido a: ' + status
  52.      }
  53.    });
  54.  });
  55. }
  56. // -->
  57.   </head>
  58.   <body>
  59.     <div id="texto">
  60.       <h3> Haga click sobre el mapa y verá su dirección</h3>
  61.       Dirección del click: <span id="direccion" style="color: #00FFB3;"></span>
  62.       <br/>
  63.       Coordenadas: <span id="coordenadas" style="color: #00FFB3;"></span>
  64.       <br />
  65.       <span id="mensaje"></span>
  66.     </div>
  67.     <div id="mapa"></div>
  68.     </div>
  69.   </body>
  70. </html>

Esto es básico en el trabajo de Google Maps. Si lo tuyo es un ejercicio, un estirón de orejas al profesor. Si lo haces por tu cuenta, comienza (y es redundancia) por el principio.

Última edición por txemaarbulo; 05/05/2015 a las 10:10
  #3 (permalink)  
Antiguo 05/05/2015, 15:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Obtener coordenadas Google Maps pinchando

Hola txemaarbulo, gracias por responder. Sí lo estoy haciendo por mi cuenta jejeje.

Ya lo conseguí ayer, simplemente tenía que introducir el siguiente código:


Código Javascript:
Ver original
  1. //con esto obtengo las coordenadas y coloco el marker
  2. google.maps.event.addListener(map, 'click', function(event) {
  3.  
  4.         var coordenadas = event.latLng;
  5.         var lat = coordenadas.lat();
  6.         var lng = coordenadas.lng();
  7.             placeMarker(event.latLng);
  8.  
  9. }
  10.  
  11.  
  12. //y aquí la función que me permite colocar el marcador, los condicionales son
  13. //para que solo un marcador aparezca a la vez, así que si ya existe uno, lo recoloca
  14. //en la nueva posición
  15.  
  16. var marker;
  17.  
  18. function placeMarker(location) {
  19.   if ( marker ) {
  20.     marker.setPosition(location);
  21.   } else {
  22.     marker = new google.maps.Marker({
  23.       position: location,
  24.       map: map
  25.     });
  26.   }
  27. } //fin funcion placeMarker

Un saludo y gracias de nuevo

Etiquetas: coordenadas, google, maps
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 05:42.