Evet, eşzamanlı bir istek gerekmediği halde, elde etmeye çalıştığınız şey mümkündür. sunumundan bu kodun
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();
});
});
Yani, forma işleyicisi göndermek takmak en
Bak senin formdan adres bilgi dayalı jeo isteğini yapmak. Ancak aynı zamanda, işleyiciye yanlış göndererek gönderimi erteleyebilirsiniz. Yanıt işleyicisi 2 gizli textfields 'lat' ve 'long' yapacak ve yanıtı saklayacaktır. Son olarak, form iki yeni alan da dahil olmak üzere istemci komut dosyasıyla gönderilir. Sunucu tarafında bunları DB'de saklayabilirsiniz.
!! Bunun mümkün olduğunu unutmayın, ancak muhtemelen yukarıda belirtildiği gibi Google şartlarına aykırıdır.
Adres içeren bir formum var. Form verilerini doğrulamanın bir parçası olarak, adresi kontrol etmek için googles geocoder'ı kullanmayı düşünüyordum. Veritabanıma girmek için enlem ve boylam değerlerine de ihtiyacım var. Bunu geri arama işlevini kullanarak yapabileceğimi biliyorum, ancak bu bir kesmek gibi görünüyor ve daha karmaşık olurdu. – giroy
Geocoder'ın tamamen geri arama işleviyle kullanılması amaçlanmıştır. Endişelenme, o bir hack değil. :) Bu gerçekten tek seçeneğiniz. Bununla birlikte, bir Google Haritasındaki sonuçları bir şekilde göstermeden Geocoder'ı kullanıyorsanız, Google Haritalar Hizmet Şartları'nı ihlal edeceğinizi unutmayın. –
Bildiğim kadarıyla, Google api'yi dahili bir sistemde veya belirli bir kitleyle kullanamazsınız. Haritalar'ı kullanan sayfanız tüm İnternet'e açık olmalıdır - sözleşme şartlarını okuyun. İyi @B Chris @Chris B –