【问题标题】:Google Places v3 API autocomplete - cannot get locality working?Google Places v3 API 自动完成 - 无法让本地化工作?
【发布时间】:2011-10-16 04:53:14
【问题描述】:

我一直在使用下面的代码,它工作了一周左右,我回来继续工作,但它似乎不再工作了。我只想显示地区。查看 Google 的文档“locality”是这样做的正确选择。我在想也许谷歌改变了 API 之类的。一旦我将其切换到地理编码,它就可以工作,但会显示所有街道和地点,这不是我想要的。我也尝试了 ["locality","political"],但没有成功。我在这里做错了什么?

<script type="text/javascript">
  function initialize() {

    var input = document.getElementById('searchTextField');

    var Newoptions = {
      types: ["locality"]
    }; 

    var autocomplete = new google.maps.places.Autocomplete(input,Newoptions);

  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

<input id="searchTextField" name="member_location" value="" type="text" >

【问题讨论】:

    标签: javascript jquery ajax api


    【解决方案1】:

    结果中并不总是提供地区,因此如果您位于没有地区的区域,例如行政区域级别_3,则必须提供备用,尽管您总是会得到国家/地区,所以您最好有它最终会退回到那里。

    【讨论】:

    • 但是为什么会这样呢?是不是因为 Google Maps API 还不知道/定义该地理区域的地点,例如像新加坡这样的国家?
    【解决方案2】:

    在你的代码中,你使用了

     var Newoptions = {
          types: ["locality"] //This is not proper types. 
        };
    

    使用类型:['(regions)'] 反而。然后检索位置形式。示例代码如下,它工作正常。

    autocomplete = new google.maps.places.Autocomplete(
         (document.getElementById('YOURsearchBOXID')),
           { types: ['(regions)']});
    
           google.maps.event.addListener(autocomplete, 'place_changed', function() {
            var place = autocomplete.getPlace();
    
             for (var i = 0; i < place.address_components.length; i++) {
                if(place.address_components[i].types[0] == "locality")
                {
                    console.log(place['address_components'][i]['long_name']);
                break;
                }
             }
    
        });
    

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2018-02-27
      • 2014-05-01
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多