Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google autocomplete API首先返回我所在州的位置,而不是“最多”;“预期”;地点_Javascript_Jquery_Google Maps_Autocomplete_Google Places - Fatal编程技术网

Javascript Google autocomplete API首先返回我所在州的位置,而不是“最多”;“预期”;地点

Javascript Google autocomplete API首先返回我所在州的位置,而不是“最多”;“预期”;地点,javascript,jquery,google-maps,autocomplete,google-places,Javascript,Jquery,Google Maps,Autocomplete,Google Places,我在输入地址时使用Google Autocomplete,这是一个简单的实现: autocomplete_origin_address = new google.maps.places.Autocomplete( document.getElementById('origin_address'), {types: ["geocode"]} ); 当我开始输入“Lon”时,第一个建议的位置是加利福尼亚州长滩,下一个是“英国伦敦”——这只是一个例子 我住在加利福尼亚州。一般说来,当我开始键入地

我在输入地址时使用Google Autocomplete,这是一个简单的实现:

autocomplete_origin_address = new google.maps.places.Autocomplete(
  document.getElementById('origin_address'), {types: ["geocode"]}
);
当我开始输入“Lon”时,第一个建议的位置是加利福尼亚州长滩,下一个是“英国伦敦”——这只是一个例子

我住在加利福尼亚州。一般说来,当我开始键入地址时,提供给我的位置位于CA。如何获得整个北美的位置

我试图修改我的自动完成设置,如:

autocomplete_origin_address = new google.maps.places.Autocomplete(
  document.getElementById('origin_address'), {types: ["route", "geocode"]}
);
但是在这种情况下,autocomplete没有提供任何东西(即使我只在数组中保存
路由

如何设置autocomplete来推荐主要来自北美而非CA的地点?

试试以下方法:

navigator.geolocation.getCurrentPosition(position=> {
  $.getJSON("https://maps.googleapis.com/maps/api/geocode/json?latlng=" 
            + position.coords.latitude + "," + position.coords.longitude
            + "&sensor=false").then(data=> {
    for (let component of data.results[0].address_components) {
      if (component.types.includes("country")) {
        new google.maps.places.Autocomplete(
          $('#origin_address')[0], {types: ["geocode"],
          componentRestrictions: {country: component.short_name}}
        );
        break;
      }
    }
  })
})
首先,它使用broswser的地理定位API获取当前位置。然后它向Google Maps API发出请求,根据纬度和经度获取国家。然后它初始化autocomplete,将其限制在这个国家