当前位置: 首页 > 知识库问答 >
问题:

将google自动完成输出限制为仅限城市

拓拔玺
2023-03-14

我有以下代码来寻找城市从一个给定的国家使用谷歌自动完成api:

<script src="https://maps.googleapis.com/maps/api/js?key=KEY&sensor=false&libraries=places&region=uk" type="text/javascript"></script>

     function initialize() {
       var input = document.getElementById('searchTextField');
       var options = {
         types: ['(cities)'],
         componentRestrictions: { country: "uk" }
     };
       var autocomplete = new google.maps.places.Autocomplete(input, options);
     }
 google.maps.event.addDomListener(window, 'load', initialize);

我在脚本src中添加了区域,以便在输出中不包括国家。
例如,如果我键入Lo,我只得到伦敦,而不是英国伦敦

var country= $('#CountryDropdown');

如何将var国家/地区传递给组件和区域?

共有1个答案

商琛
2023-03-14

我也有同样的问题,我用这个解决了它。希望这对你有帮助。

<script src="https://maps.googleapis.com/maps/api/js?key=Yourkey&v=3.exp&libraries=places"></script>

function initialize() {

    var input = document.getElementById('FullAddress');
    var options = {
        types: ['address'],
        componentRestrictions: { country: 'uk' }
    };
    autocomplete = new google.maps.places.Autocomplete(input, options);

    google.maps.event.addListener(autocomplete, 'place_changed', function () {
        // Get the place details from the autocomplete object.
        var place = autocomplete.getPlace();
        for (var component in componentForm) {
            document.getElementById(component).value = '';
            // document.getElementById(component).disabled = false;
        }
        $("#Latitude").val(place.geometry.location.lat());
        $("#Longitude").val(place.geometry.location.lng());

        // Get each component of the address from the place details
        // and fill the corresponding field on the form.
        for (var i = 0; i < place.address_components.length; i++) {
            var addressType = place.address_components[i].types[0];
            if (componentForm[addressType]) {
                var val = place.address_components[i][componentForm[addressType]];
                document.getElementById(addressType).value = val;
            }
        }
    });
}
 类似资料:
  • 有没有办法只显示谷歌地图api自动完成字段中的城市? 目前,我们正在使用地理代码,但不幸的是,我们甚至收到了国家和地址。 我们甚至尝试了以下代码 自动完成=新谷歌。地图。地方。自动完成(输入、选项); 我们收到的错误是 未捕获的TypeError:无法读取未定义的属性“Autocomplete” --谢谢你

  • 问题内容: 我正在使用google autocomplete place javascript返回搜索框的建议结果,我只需要显示与输入字符有关的城市和国家/地区,但google api会提供很多我不需要的常规地方结果,所以限制结果只显示城市和国家。 我正在使用以下示例: 问题答案: 您可以尝试国家/地区限制 更多信息: ISO 3166-1 alpha-2 可用于将结果限制为特定组。当前,您可以使

  • 问题内容: 我想创建JTextField,输入字符限于“ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789 +&@#/%?=〜_- |!:,。;”之类的输入字符。所以我尝试覆盖 但这不是我想要的,因为用户无法再按ctrl-c ctrl-v ctrl-x …所以我添加了 到if条件,但现在用户可以粘贴不适当的输入,即’(’

  • 问题内容: 我在AngularJS中使用ngChange来触发自定义函数,该函数将删除用户添加到输入中的所有字母。 问题是我需要定位触发的输入,以便删除输入的字母。我已经在Google上寻找了很长时间,并且对此一无所获。 我能做什么? 问题答案: 简单的方法 ,如果适用于您的用例,请使用type =“ number” : 另一种简单的方法: ng- pattern 也可用于定义正则表达式,以限制字

  • 问题内容: 我正在使用Google Maps V3显示一些图钉。我希望能够刷新标记而不影响您在地图上的位置或缩放级别。我希望标记每x秒更新一次。 我将如何去做?我在jQuery / ajax方面没有太多经验。 我的地图的工作示例如下。 http://jsfiddle.net/dLWNc/ 谢谢 问题答案: 好的,我有一些工作-很大程度上是对原始代码的大量重构-您会认识到各种不同的块。 在代码的底部

  • 我已经编写了basic程序,但是,我需要使它这样,如果输入了一个以上的字符,一个错误消息将显示。 }