Google 自动完成语言
Google Autocomplete language
我有以下情况。在网站上,用户根据 google 自动完成提交公寓位置。他们从 google 建议列表中选择一个城市,我选择那个城市和国家(通过 api)并将它们保存到数据库中。
其他用户也可以使用 google 自动完成表格搜索该城市的列表。当用户使用不同的语言时出现问题。
前 - 用户 1 在美国。当他提交他的清单时,我收到来自 google 国家 "united states" 的信息。
当用户 2(居住在荷兰)使用 google 自动完成进行搜索时,我收到国家/地区 "Verenigde Staten"(美国)。但是搜索算法将不起作用,因为提交的列表保存为 "united states" 而不是 "Verenigde Staten".
有没有一种方法可以以用户语言显示建议列表,但以英文接收结果(这样我就可以仅使用英文保存和搜索)。也许翻译结果?
我知道我可以 "block" 英文的建议列表,但我想将其用作最终措施。
这是我的代码
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);
}
这个问题很可能已经回答 here。
简而言之,响应包含一个 ID,对于两个查询,该 ID 应该相同。
您可以使用此 ID 来识别用户正在寻找的国家/地区。
根据文档:
id contains a unique stable identifier denoting this place. This
identifier may not be used to retrieve information about this place,
but can be used to consolidate data about this Place, and to verify
the identity of a Place across separate searches. As ids can
occasionally change, it's recommended that the stored id for a Place
be compared with the id returned in later Details requests for the
same Place, and updated if necessary.
您可以使用参考查询地点 API。参考因语言而异。您可以选择添加检索到的 ID。
我有以下情况。在网站上,用户根据 google 自动完成提交公寓位置。他们从 google 建议列表中选择一个城市,我选择那个城市和国家(通过 api)并将它们保存到数据库中。
其他用户也可以使用 google 自动完成表格搜索该城市的列表。当用户使用不同的语言时出现问题。
前 - 用户 1 在美国。当他提交他的清单时,我收到来自 google 国家 "united states" 的信息。
当用户 2(居住在荷兰)使用 google 自动完成进行搜索时,我收到国家/地区 "Verenigde Staten"(美国)。但是搜索算法将不起作用,因为提交的列表保存为 "united states" 而不是 "Verenigde Staten".
有没有一种方法可以以用户语言显示建议列表,但以英文接收结果(这样我就可以仅使用英文保存和搜索)。也许翻译结果?
我知道我可以 "block" 英文的建议列表,但我想将其用作最终措施。
这是我的代码
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);
}
这个问题很可能已经回答 here。
简而言之,响应包含一个 ID,对于两个查询,该 ID 应该相同。 您可以使用此 ID 来识别用户正在寻找的国家/地区。 根据文档:
id contains a unique stable identifier denoting this place. This identifier may not be used to retrieve information about this place, but can be used to consolidate data about this Place, and to verify the identity of a Place across separate searches. As ids can occasionally change, it's recommended that the stored id for a Place be compared with the id returned in later Details requests for the same Place, and updated if necessary.
您可以使用参考查询地点 API。参考因语言而异。您可以选择添加检索到的 ID。