Gracias.
Código:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=true"> </script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/geocode/output?parameters"> </script>
<script type="text/javascript" src="C:/Users/Public/Documents/INNOVAXIONES/js/jquery-1.7.2.min.js"> </script>
<script type="text/javascript">
//Declaramos las variables que vamos a user var lat = null;
var lat = null;
var lng = null;
var map = null;
var geocoder = null;
var marker = null;
jQuery(document).ready(function(){
//obtenemos los valores en caso de tenerlos en un formulario ya guardado en la base de datos
lat = jQuery('#lat').val();
lng = jQuery('#lng').val();
//Asignamos al evento click del boton la funcion codeAddress
jQuery('#pasar').click(function(){
codeAddress();
return false;
});
//Inicializamos la función de google maps una vez el DOM este cargado
initialize();
});
function initialize() {
geocoder = new google.maps.Geocoder();
//Si hay valores creamos un objeto Latlng
if(lat !='' && lng != '')
{
var myLatlng = new google.maps.LatLng(lat,lng);
}
else
{
var myLatlng = new google.maps.LatLng(-12.1175,-77.043056);
}
//Definimos algunas opciones del mapa a crear
var myOptions = {
zoom: 14,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
marker = new google.maps.Marker({
map: map,//el mapa creado en el paso anterior
position: myLatlng,//objeto con latitud y longitud
draggable: true //que el marcador se pueda arrastrar
});
/*
//draggable: true //que el marcador se pueda arrastrar
google.maps.event.addListener(map, 'zoom_changed', function() {
setTimeout(moveToDarwin, 3000);
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Aqui me encuentro!"
});
google.maps.event.addListener(marker, 'click', function() {
map.setZoom(8);
});
///// EVENTO Place Marker
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});
*/
updatePosition(myLatlng);
}
//alert("lat");
/*
function moveToDarwin() {
var darwin = new google.maps.LatLng(-12.1175,-77.043056);
map.setCenter(darwin);
}
// Evento Points Marker
function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
map.setCenter(location);
}
/// Evento Mensaje por Marker
function attachSecretMessage(marker, number) {
var message = ["This","is","the","secret","message"];
var infowindow = new google.maps.InfoWindow({
content: message[number],
size: new google.maps.Size(50,50)
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
*/
//funcion que traduce la direccion en coordenadas
function codeAddress() {
//obtengo la direccion del formulario
var address = document.getElementById("direccion").value;
//hago la llamada al geodecoder
geocoder.geocode( { 'address': address}, function(results, status) {
//si el estado de la llamado es OK
if (status == google.maps.GeocoderStatus.OK) {
//centro el mapa en las coordenadas obtenidas
map.setCenter(results[0].geometry.location);
//coloco el marcador en dichas coordenadas
marker.setPosition(results[0].geometry.location);
//actualizo el formulario
updatePosition(results[0].geometry.location);
//Añado un listener para cuando el markador se termine de arrastrar
//actualize el formulario con las nuevas coordenadas
google.maps.event.addListener(marker, 'dragend', function(){
updatePosition(marker.getPosition());
});
} else {
//si no es OK devuelvo error
alert("No podemos encontrar la dirección, error: " + status);
}
});
}
//funcion que simplemente actualiza los campos del formulario
function updatePosition(myLatlng) {
jQuery('#lat').val(myLatlng.lat());
jQuery('#lng').val(myLatlng.lng());
}
function test(){
alert("teclas");
}
</script>
</head>
<body onload="initialize()">
<?
//necesario para poder usar is_page o is_single
add_action('template_redirect','carga_archivos');
function carga_archivos(){
if(is_single(9999)) // tu número de post o slug
{
wp_enqueue_script( 'google-api','https://maps.google.com/maps/api/js?sensor=true', array( 'jquery' ) );
wp_enqueue_script( 'google-maps',get_bloginfo('stylesheet_directory') . '/js/google-map.js', array( 'google-api' ) );
}
}
?>
<form id="position" name="position" action="#">
<br />
<label>Dirección</label>
<input type="text" id="direccion" name="direccion" value="Miraflores, Lima - Peru"/>
<button id="pasar">Pasar al mapa</button>
<br /><br />
<!-- div donde se dibuja el mapa-->
<div id="map_canvas" style="width:500px;height:400px;">
</div>
<br />
<!--campos ocultos donde guardamos los datos-->
<input type="text" name="lat" id="lat" onkeypress="javascript:updatePosition();" />
<input type="text" name="lng" id="lng" onkeypress="javascript:updatePosition();" />
</form>
</body>
</html>