1

我正在尝试使用 jquery 库geocomplete来自动完成谷歌地址,并写入一些隐藏字段变量,如 long、lat、location_type。它适用于被写出的 lat,lng,但我正在努力获取位置类型。这是我尝试过的:

#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来澄清我想要做什么)

4

2 回答 2

0

尝试

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

代替

$("input#id_location_type").val(result.geometry.location_type());
于 2013-10-21T07:38:54.793 回答
0

基本上,你必须绑定你的地理编码方法,geocode:result然后你可以提取latlng

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

您可以 在此处进一步阅读

于 2018-02-25T18:15:44.990 回答