Sí, lo que está tratando de lograr es posible, aunque no se necesita una solicitud sincrónica.
mirada a este código
function StoreGeo()
{
var address = $('input[name=zipcode]').val() + ', ' + $('input[name=city]').val();
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var ll = results[0].geometry.location.toString();
llarr = ll.replace(/[\(\) ]/g, '').split(',');
for(i = 0; i < llarr.length;i++)
{
$('#form').append($('<input type="hidden" name="'+(i == 0 ? 'lat' : 'long')+'">').val(llarr[i]));
}
$('#form').submit();
}
else
{
alert(status);
}
});
$('#form').unbind('submit');
return false;
}
$(document).ready(function() {
//init maps
geocoder = new google.maps.Geocoder();
$('#form').bind('submit',function() {
StoreGeo();
});
});
Así, adjunte presentar manejador a la forma, cuando se presentó la solicitud de hacer geo basado en la información de direcciones de su formulario. Pero, al mismo tiempo, posponga la entrega devolviendo false en el controlador. El controlador de respuesta creará 2 campos de texto ocultos 'lat' y 'long' y almacenará la respuesta. finalmente el formulario es enviado por el script del cliente, incluidos los dos nuevos campos. En el lado del servidor, puedes almacenarlos en la base de datos.
!! Tenga en cuenta que esto es posible, pero probablemente esté en contra de los términos de Google, como se indicó anteriormente.
Tengo un formulario que incluye una dirección. Como parte de la validación de los datos del formulario, estaba pensando en utilizar el geocodificador de Google para verificar la dirección. También necesito los valores de latitud y longitud para ingresar en mi base de datos. Sé que puedo hacer esto usando la función de devolución de llamada, pero eso parece un truco y sería más complicado. – giroy
El Geocoder está destinado exclusivamente para ser utilizado con la función de devolución de llamada. No te preocupes, no es un truco. :) Es realmente tu única opción. Tenga en cuenta, sin embargo, que romperá las Condiciones de Servicio de Google Maps si está utilizando el Geocoder sin mostrar de alguna manera los resultados en un Mapa de Google. –
Hasta donde yo sé, no puede usar la API de Google en un sistema interno o con un público selecto. Su página que usa Maps debe estar abierta a todo Internet, lea los términos del contrato. Buena @B Chris @Chris B –