Google地图API上的自动填充功能应仅返回城市

时间:2016-08-09 11:06:22

标签: google-maps

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAiv004_zrkpEL-v1u-LU6QYIkgv7yjT_M&language={{ Lang::getLocale() }}&libraries=places&" />
<script type="text/javascript">
    google.maps.event.addDomListener(window, 'load', function () {

        var options = {
          types: ['(cities)']
        };

        var places = new google.maps.places.Autocomplete(document.getElementById('location'));

        var inputLat = $("input[name*='lat']");
        var inputLng = $("input[name*='lng']");
        var inputPlaceId = $("input[name*='place_id']");

        google.maps.event.addListener(places, 'place_changed', function () {
            var place = places.getPlace();
            var address = place.formatted_address;
            var latitude = place.geometry.location.lat();
            var longitude = place.geometry.location.lng();
            var placeId = place.place_id;

            inputLat.val(latitude);
            inputLng.val(longitude);
            inputPlaceId.val(placeId);
        });
    });


    $('#location').keypress(function(e) {
        if (e.which == 13) {
          google.maps.event.trigger(autocomplete, 'place_changed');
          return false;
        }
    });
</script>

我需要它才能显示城市,但不知何故我也得到了国家......我不想展示大陆和国家。请帮忙

1 个答案:

答案 0 :(得分:0)

如果您检查自动填充documentation,则会在此处说明:

  

(cities)类型集合指示Places服务返回   与locality或administrative_area3匹配的结果

就像你所做的那样,你需要城市作为类型参数。

您可以通过region参数帮助在Google API调用中指定国家/地区。只需检查tutorial如何执行此操作。

以下是示例请求:

= javascript_include_tag "http://maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=places&region=UK"

有关详细信息,请查看此相关的SO问题,它可能会让您了解如何解决此问题。