Google自动填充语言

时间:2015-11-13 10:23:22

标签: jquery google-places-api

我有以下情况。在网站上,用户根据Google自动填充功能提交公寓位置。他们从谷歌建议列表中选择一个城市,然后我将这个城市和国家(通过api)保存到数据库中。

其他用户也可以使用Google自动填充表格搜索该城市的商家信息。当用户使用不同语言时,会出现此问题。

对于前用户1在美国。当他提交他的列表我从谷歌收到国家"美国" 。

当用户2(居住在荷兰)使用谷歌自动填充搜索时,我会收到国家" Verenigde Staten" (美国在duch)。但是搜索算法将不起作用,因为提交的列表被保存为"美国"而不是" Verenigde Staten"。

有没有办法用用户语言显示建议列表但是用英语接收结果(所以我可以只使用英语保存和搜索)。也许翻译结果?

我知道我可以"阻止"英文的建议清单,但我想用这个作为最终措施。

这是我的代码

input = (document.getElementById('property_city_front'));
defaultBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(-90, -180),
    new google.maps.LatLng(90, 180)
);

options = {
    bounds: defaultBounds,
    types: ['(cities)'],
};

componentForm = {
    establishment: 'long_name',
    street_number: 'short_name',
    route: 'long_name',
    locality: 'long_name',
    administrative_area_level_1: 'long_name',
    administrative_area_level_2: 'long_name',
    country: 'long_name',
    postal_code: 'short_name',
    postal_code_prefix: 'short_name',
    neighborhood: 'long_name',

};


if (document.getElementById('property_city_front')) {
    autocomplete = new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(autocomplete, 'place_changed', function () {
        place = autocomplete.getPlace();
        fillInAddress(place);
    });
}

根据建议我回复地方ID(用荷兰语自动完成)并查询PlacesService但我得到的结果仍然是荷兰语而不是英语。 这是代码

  var request = {
        placeId: 'ChIJOwg_06VPwokRYv534QaPC8g',
        id: '7eae6a016a9c6f58e2044573fb8f14227b6e1f96',
        language:'en'
    };

    map = new google.maps.Map(document.getElementById('searchmap'), {
    zoom: 15,
    scrollwheel: false
    });

    service = new google.maps.places.PlacesService(map);
    service.getDetails(request, callback);

    function callback(place, status) {
        console.log(status);
        console.log (place);
    }

1 个答案:

答案 0 :(得分:3)

这个问题很可能已经回答here

简而言之,响应包含一个ID,对于两个查询都应该相同。 您可以使用此ID来标识用户正在查找的国家/地区。 根据文件:

  

id包含表示此位置的唯一稳定标识符。这个   标识符不能用于检索有关此地点的信息,   但可用于合并有关此地方的数据,并进行验证   跨越不同搜索的地方的身份。 ids可以   偶尔更改,建议将存储的ID替换为Place   与后来的Details请求中返回的id进行比较   相同的地方,并在必要时更新。

您可以使用引用查询Places API。每种语言的参考不同。您可以选择添加检索到的ID。