我的要求是仅为班加罗尔地方获取谷歌地方自动填充建议,但我不是仅为班加罗尔或提到纬度经度的地方。
我想仅在自动填充文字字段中的图片位置下方退休。
有人可以建议如何实现相同的目标以及我出错的地方。
使用Javascript:
<script type="text/javascript">
function initialize1() {
var southWest = new google.maps.LatLng( 12.97232, 77.59480 );
var northEast = new google.maps.LatLng( 12.89201, 77.58905 );
var bangaloreBounds = new google.maps.LatLngBounds( southWest, northEast );
var options = {
bounds: bangaloreBounds,
types: ['(cities)'],
componentRestrictions: {country: 'in'}
};
var input = document.getElementById('searchTextFieldTo');
var autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initialize1);
</script>
的TextField:
<input type="text" id="searchTextFieldTo" class="ui-timepicker-hour" style="width:350px;text-align:left;font-style:italic;" placeholder="Enter To location" autocomplete="on" />
答案 0 :(得分:3)
正如我的回答here所述:
目前无法将结果限制在特定地区。您可以像上面那样使用边界来偏向结果,但不限于指定范围内包含的位置。
如果您认为按地区限制是有用的功能,请提交Places API - Feature Request。
编辑: 根据2018-07,可以定义要检索的地点的类型,例如 cities (根据API,它们是locality或administrative_area3)。查看完整答案here。
答案 1 :(得分:2)
答案 2 :(得分:1)
Google提供了两种实现此目标的方法。 如果您不满意,因为在印度这样的国家,它不能很好地运作,因为这里的州和条款没有矩形或结构边界。
1.LatLngBounds(LatLng southwest,LatLng northeast):您可以在其中给出经度和经度以形成矩形。
<强> 2。位置(Lat,Lng)&amp;半径:您可以在其中给出经度和经度以形成圆圈。
但是如果你来自像印度这样的国家和条款不像美国那样的结构形状(矩形),这些方法的问题就不能提供预期的结果。
如果你遇到同样的问题而不是黑客攻击。 使用jQuery / Jacascript,您可以附加功能,这些功能将在文本输入中始终保持城市名称,并与Places API的自动完成对象绑定。
这是:
<script>
$(document).ready(function(){
$("#locality").val(your-city-name) //your-city-name will have city name and some space to seperate it from actual user-input for example: “Bengaluru | ”
});
$("#locality").keydown(function(event) { //locality is text-input box whixh i supplied while creating Autocomplete object
var localeKeyword = “your-city-name”
var localeKeywordLen = localeKeyword.length;
var keyword = $("#locality").val();
var keywordLen = keyword.length;
if(keywordLen == localeKeywordLen) {
var e = event || window.event;
var key = e.keyCode || e.which;
if(key == Number(46) || key == Number(8) || key == Number(37)){
e.preventDefault();
}//Here I am restricting user to delete city name (Restricting use of delete/backspace/left arrow) if length == city-name provided
if(keyword != localeKeyword) {
$("#locality").val(localeKeyword);
}//If input-text does not contain city-name put it there
}
if(!(keyword.includes(localeKeyword))) {
$("#locality").val(localeKeyword);
}//If keyworf not includes city name put it there
});
</script>
(图片:)在此之前
(图片:)此黑客之后
答案 3 :(得分:1)
function initialize() {
var bangaloreBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(12.864162, 77.438610),
new google.maps.LatLng(13.139807, 77.711895));
var options = {
bounds: bangaloreBounds,
componentRestrictions: {country: 'in'},
strictBounds: true,
};
var input = document.getElementById('autocomplete');
var autocomplete = new google.maps.places.Aut`enter code here`ocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 4 :(得分:0)
与Google javascript Places API here的当前文档一样,您可以定义要检索的场所的 types 数组。在下面的示例中,我将其设置为仅检索城市(根据API,这些城市为locality或Administrative_area3)。您还可以设置它来检索区域,地址,营业场所和地理编码。
function initMap() {
var input = document.getElementById('my-input');
var options = {
types: ['(cities)']
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
// the rest of the code ...
}