- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为谷歌地点自动完成实现自定义 UI,因为预建的 UI 不允许我手动选择结果。在 getPlacePredictions 函数选项中不使用多种类型时,一切正常,但当我使用 ['(regions)', '(cities)'] 时,状态返回“无效请求”
我是做错了什么还是无法返回多种类型?
var _this = this;
this.input = $('#zipcode_autocomplete');
this.service = new google.maps.places.AutocompleteService();
this.input.on('input', function() {
return _this.service.getPlacePredictions({
input: _this.input.val(),
types: ['(regions)', '(cities)'],
componentRestrictions: {
country: 'us'
}
}, _this.callback);
});
this.callback = function(predictions, status) {
var i, prediction, _results;
console.log(predictions);
if (status !== google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
i = 0;
prediction = void 0;
this.results = $('ul.location_results').removeClass('hidden').html('');
_results = [];
while (prediction = predictions[i]) {
this.results.append("<li><span class='location-address'>" + prediction.terms[0].value + "</span><span class='location-state'>" + prediction.terms[prediction.terms.length - 2].value + "</span></li>");
_results.push(i++);
}
return _results;
};
最佳答案
根据 API 'In general only a single type is allowed' .
如果您要尝试分别获取这两种类型,您可以使用 deferred object管理流程,像这样:
// set a new promises array, set the types array
var promises = [], types = ['(regions)', '(cities)'];
// loop over the types and push the output of getPredications() for each one
// into the promises array
for (var i = 0, l = types.length; i < l; i++) {
promises.push(getPredictions(types[i]));
}
// when all promises have completed then do something
// This uses jQuery's when method which can take an array of
// promises when used with apply
$.when.apply(null, promises).then(runThisFunction);
function getPredictions(type) {
// Set up a new deferred object
var deferred = new $.Deferred();
// Call the asynchronous function to get the place predictions
this.service.getPlacePredictions({
input: _this.input.val(),
types: type,
componentRestrictions: {
country: 'us'
}
}, function (data) {
// Once the data has been returned perhaps do something with data
// but definitely resolve the deferred object.
deferred.resolve();
});
// return the promise
return deferred.promise();
}
关于javascript - 从 google places 返回多种类型 autocompleteService.getPlacePredictions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139700/
使用 Google map AutocompleteService,有没有办法获取 getpredictions 调用的回调函数。 const options = { types: ['geoco
我正在尝试为谷歌地点自动完成实现自定义 UI,因为预建的 UI 不允许我手动选择结果。在 getPlacePredictions 函数选项中不使用多种类型时,一切正常,但当我使用 ['(regions
目前我正在使用 Google Maps API 中的 AutocompleteService 类。来自 documentation我使用 bounds 来应用纽约市的边界。不过,我得到了新泽西州和宾夕
我有以下查询,它是一个邮政编码:11368。 当我创建一个自动完成对象(不是服务)时,我在顶部获得了邮政编码的实际区域: 这是代码: autocomplete = new google.maps.
我正在使用 google.maps.places.AutocompleteService 获取地点搜索建议,但我无法对某些预测进行地理编码。 例如:当我搜索“storms river mouth”时,
我一直在尝试使用 Google Places api 返回仅限于一个国家/地区(在我的情况下是美国)的自动完成结果,但该服务似乎没有使用 componentRestriction 属性。我还没有发现其
我是一名优秀的程序员,十分优秀!