Json 将google地图自动完成api与select2配合使用

Json 将google地图自动完成api与select2配合使用,json,parsing,jquery-select2,Json,Parsing,Jquery Select2,我有一个关于使用select2实现Google地图自动完成功能的问题。我在控制台“uncaughtsyntaxerror:意外标记:”中遇到此错误 $(文档).ready(函数(){ $(“.address自动完成”)。选择2({ 阿贾克斯:{ url:“https://maps.googleapis.com/maps/api/place/autocomplete/json", 键入:“获取”, 数据类型:“jsonp”, 延误:250, 数据:函数(参数){ 返回{ 输入:params.ter

我有一个关于使用select2实现Google地图自动完成功能的问题。我在控制台“uncaughtsyntaxerror:意外标记:”中遇到此错误

$(文档).ready(函数(){
$(“.address自动完成”)。选择2({
阿贾克斯:{
url:“https://maps.googleapis.com/maps/api/place/autocomplete/json",
键入:“获取”,
数据类型:“jsonp”,
延误:250,
数据:函数(参数){
返回{
输入:params.term,//搜索项
钥匙:“我的钥匙”
};
},
processResults:函数(数据、参数){
params.page=params.page | | 1;
返回{
结果:数据[“预测”],
分页:{
更多:(params.page*2)
Json结果:

谷歌不喜欢ajax对其API的请求,最好覆盖Select2 dataAdapter并使用谷歌函数调用autocomplete API

$.fn.select2.amd.define('select2/data/googleAutocompleteAdapter', ['select2/data/array', 'select2/utils'],
    function (ArrayAdapter, Utils) {
        function GoogleAutocompleteDataAdapter ($element, options) {
            GoogleAutocompleteDataAdapter.__super__.constructor.call(this, $element, options);
        }

        Utils.Extend(GoogleAutocompleteDataAdapter, ArrayAdapter);

        GoogleAutocompleteDataAdapter.prototype.query = function (params, callback) {
            var returnSuggestions = function(predictions, status)
            {
                var data = {results: []};
                if (status != google.maps.places.PlacesServiceStatus.OK) {
                    callback(data);
                }
                for(var i = 0; i< predictions.length; i++)
                {
                    data.results.push({id:predictions[i].place_id, text: predictions[i].description});
                }
                data.results.push({id:' ', text: 'Powered by Google', disabled: true});
                callback(data);
            };

            if(params.term && params.term != '')
            {
                var service = new google.maps.places.AutocompleteService();
                service.getPlacePredictions({ input: params.term }, returnSuggestions);
            }
            else
            {
                var data = {results: []};
                data.results.push({id:' ', text: 'Powered by Google', disabled: true});
                callback(data);
            }
        };
        return GoogleAutocompleteDataAdapter;
    }
);
function formatRepo (repo) {
    if (repo.loading) {
        return repo.text;
    }
    var markup = "<div class='select2-result-repository clearfix'>" +
        "<div class='select2-result-title'>" + repo.text + "</div>";
    return markup;
}

function formatRepoSelection (repo) {
    return repo.text;
}

var googleAutocompleteAdapter = $.fn.select2.amd.require('select2/data/googleAutocompleteAdapter');

$('.adress-autocomplete').select2({
    width: '100%',
    dataAdapter: googleAutocompleteAdapter,
    placeholder: 'Search Adress',
    escapeMarkup: function (markup) { return markup; }, 
    minimumInputLength: 2,
    templateResult: formatRepo,
    templateSelection: formatRepoSelection
});
添加类型

service.getPlacePredictions({ input: params.term, types: ['address'] }, returnSuggestions);

您可以在此处看到类型:

您解决了吗?
service.getPlacePredictions({ input: params.term }, returnSuggestions);
service.getPlacePredictions({ input: params.term, types: ['address'] }, returnSuggestions);