谷歌自动完成API首先返回我所在州的位置;预期的“;地方
Google autocomplete API returns places in my state first instead of the most "expected" places
我在输入地址时使用谷歌自动完成,这是一个简单的实现:
autocomplete_origin_address = new google.maps.places.Autocomplete(
document.getElementById('origin_address'), {types: ["geocode"]}
);
当我开始输入"Lon"时,第一个建议的位置是Long Beach, CA
,下一个是"London United Kingdom"——这只是一个例子。
我住在加利福尼亚州。一般来说,当我开始输入地址时,提供给我的地址位于加利福尼亚州。我如何获得整个北美的地址?
我试图修改我的自动完成设置,比如:
autocomplete_origin_address = new google.maps.places.Autocomplete(
document.getElementById('origin_address'), {types: ["route", "geocode"]}
);
但在这种情况下,自动完成并没有提供任何东西(即使我在数组中只保留route
.
如何设置自动补全来建议不是主要来自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获取当前位置。然后它向谷歌地图API提出请求,以获得基于纬度和经度的国家。然后它初始化自动完成,将其限制在这个国家。
请参阅JS Fiddle演示。
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 谷歌位置api获取细节,并不是每个地方都返回
- 谷歌自动完成API首先返回我所在州的位置;预期的“;地方
- 如何找到您的位置附近的地方与Yelp API v2
- 我如何应用地理位置坐标从谷歌地图得到方向到一个特定的地方
- 如何设计一个简单的网页,其中输入GPS位置返回你所有的地方(如atm机,酒吧等)和他们的距离的位置
- 帮助附近的地方用户的位置谷歌JS API