Noticias
Blog
Esta es una funcion que nos puede ser muy util, cuando queramos crear mapas de google de forma dinámica a partir de la dirección de un cliente. Recientemente esto lo hemos usado en un proyecto en el cual se crean los mapas a partir de las direcciones que tenemos en la base de datos.
De esta manera actualizar el mapa, bastará con actualizar los datos de la dirección del cliente.
Os dejo el código que hemos empleado y una imagen del resultado.
En cuanto lo tengamos publico os dejaremos un enlace para que los veais funcionando.
// Obtenemos la dirección y la asignamos a una variable
var direccion = $('#direccion').val();
// Creamos el Objeto Geocoder
var geocoder = new google.maps.Geocoder();
// Hacemos la petición indicando la dirección e invocamos la función
// geocodeResult enviando todo el resultado obtenido
geocoder.geocode({ 'address': direccion}, geocodeResult);
function geocodeResult(results, status) {
// Si hay resultados encontrados, centramos y repintamos el mapa
// esto para eliminar cualquier pin antes puesto
var mapOptions = {
center: results[0].geometry.location,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map($("#mapaEmpresa").get(0), mapOptions);
// fitBounds acercará el mapa con el zoom adecuado de acuerdo a lo buscado
map.fitBounds(results[0].geometry.viewport);
// Dibujamos un marcador con la ubicación del primer resultado obtenido
var markerOptions = { position: results[0].geometry.location }
var marker = new google.maps.Marker(markerOptions);
marker.setMap(map);
var contentString = ''+ $("#empresa").val() +''+ 'Dirección: '+ $("#direccion").val()+''+
$("#cp").val()+ ' '+ $("#provincia").val()+'+ 'Tfno.: '+ $("#telefono").val()+'';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map,marker);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
} else {
// Indicamos que se ha producido un error a la hora de generar el mapa
}
}
var direccion = $('#direccion').val();
// Creamos el Objeto Geocoder
var geocoder = new google.maps.Geocoder();
// Hacemos la petición indicando la dirección e invocamos la función
// geocodeResult enviando todo el resultado obtenido
geocoder.geocode({ 'address': direccion}, geocodeResult);
function geocodeResult(results, status) {
// Verificamos el estatusif (status == 'OK') {
// Si hay resultados encontrados, centramos y repintamos el mapa
// esto para eliminar cualquier pin antes puesto
var mapOptions = {
center: results[0].geometry.location,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map($("#mapaEmpresa").get(0), mapOptions);
// fitBounds acercará el mapa con el zoom adecuado de acuerdo a lo buscado
map.fitBounds(results[0].geometry.viewport);
// Dibujamos un marcador con la ubicación del primer resultado obtenido
var markerOptions = { position: results[0].geometry.location }
var marker = new google.maps.Marker(markerOptions);
marker.setMap(map);
var contentString = ''+ $("#empresa").val() +''+ 'Dirección: '+ $("#direccion").val()+''+
$("#cp").val()+ ' '+ $("#provincia").val()+'+ 'Tfno.: '+ $("#telefono").val()+'';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map,marker);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
} else {
// Indicamos que se ha producido un error a la hora de generar el mapa
}
}
Además de generar el mapa, creamos un marker con la posición y la información de la dirección del cliente.
Podeis ver en el código que estamos usando jquery, por lo tanto necesitais cargar el core de jquery. Lo podeis descargar de aquí.
Indicaros que también tendreis que tener creado un elemento html con id "mapaEmpresa" que será donde cargaremos el mapa con la altura y el ancho que le indiquemos.
Podeis ver en el código que estamos usando jquery, por lo tanto necesitais cargar el core de jquery. Lo podeis descargar de aquí.
Indicaros que también tendreis que tener creado un elemento html con id "mapaEmpresa" que será donde cargaremos el mapa con la altura y el ancho que le indiquemos.
Artículos relacionados
Google traduce por día todo el material que cabe dentro de un millón de libros.
02-05-2012
02-05-2012
Smartr Inbox, una extensión para hacer tu Gmail más inteligente
12-04-2012
12-04-2012
Descarga Firefox 11
13-03-2012
13-03-2012
PMP Samsung Galaxy 70 Plus con pantalla de 5 pulgadas, cámara de 5 megapíxeles y CPU de doble núcleo
06-03-2012
06-03-2012
2012 (141)
Mayo (8)
- Una aplicación permite espiar los chats de WhatsApp mediante Wi-Fi.
- Forfone llamadas y sms gratis para Android: Skype+Viber+WhatsApp
- Nuevo material permite multiplicar por 6 la capacidad de las memorias flash.
- Samsung amplía el entretenimiento en dispositivos móviles.
- Millones de personas retratarán su día para compartirlo con el mundo.
- Seguridad, velocidad y simplicidad explican el éxito de Chrome.
- Baldosas suman Wi-Fi y Bluetooth para hacer más inteligentes las ciudades.
- Google traduce por día todo el material que cabe dentro de un millón de libros.
Abril (12)
Marzo (16)
Febrero (43)
Enero (62)
2011 (109)
2010 (37)

