2013-05-10 4 views
1

Я пытаюсь использовать библиотеку jquery geocomplete, чтобы автозавершить адрес google и написать некоторые скрытые переменные полей, такие как long, lat, location_type. Он работает для lat, lng, которые выписываются, но я тяну свои волосы, чтобы получить тип местоположения. Вот что я пытался:extracting location_type from geocomplete (JQuery)

#theJS 

$(function(){ 
    $("#id_address").geocomplete() 
     .bind("geocode:result", function(event, result){ 
     $.log(result.formatted_address); 
      $("input#id_lat").val(result.geometry.location.lat()); 
      $("input#id_lng").val(result.geometry.location.lng()); 
      $("input#id_location_type").val(result.geometry.location_type()); 
     }) 
    }); 

#the HTML forms 

<input id="id_lng" name="lng" type="hidden" /> 
<input id="id_lat" name="lat" type="hidden" /> 
<input id="id_location_type" name="location_type" type="text" /> 
<input type="text" name="address" id="id_address" /> 

Для устранения результатов, я попытался $("input#id_location_type").val(result.geometry); и это запись в поле ввода LOCATION_TYPE [object Object], но как только я продлить его result.geometry.location_type или result.geometry.location_type() я ничего не получаю.

Любые советы, оцененные. (Вот jsfiddle уточнить, что я пытаюсь к)

ответ

0

Попробуйте

$("input#id_location_type").val(result.types); 

вместо

$("input#id_location_type").val(result.geometry.location_type()); 
0

В принципе, вы должны связать свой метод геокодирования с geocode:result, а затем вы можете экстракт lat и lng.

$("#location") 
    .geocomplete() 
    .bind("geocode:result", function (event, result) { 
    $("#latitude").val(result.geometry.location.lat()); 
    $("#longitude").val(result.geometry.location.lng()); 
    //console.log(result); 
}); 

Вы можете читать далее here