如何在此处的地图中检索我所在国家/地区的结果?
How can I retrieve result from my country in here maps?
我使用此功能来检索用户搜索目的地的结果,但这会获取来自世界各地的所有结果,我如何区分来自特定国家/地区的结果
function getPlace() {
setLoadingIcons(true);
var places = platform.getPlacesService(),
entryPoint = H.service.PlacesService.EntryPoint,
txtSearch = document.getElementById('txtSearch');
places.request(entryPoint.SEARCH, { 'at': _HEREmap.getCenter().lat + ',' + _HEREmap.getCenter().lng, 'q': txtSearch.value, 'size': 5 }, function (response) {
var items = response.results.items;
var placeHTML = '<div><a href="#" onclick="return showMapForDistination({LAT}, {LNG});"> <input hidden name="lat" value="{LAT}"><input hidden name="lat" value="{LNG}">{TITLE} <img src="Images/navigation Icon.png" id="arr" width="15" /> </a></div>';
var html = '';
for (var i = 0; i < items.length; i++) {
html += placeHTML.replace("{TITLE}", items[i].title).replace("{LAT}", items[i].position[0]).replace("{LNG}", items[i].position[1]);
}
document.getElementById('divSearchResult').innerHTML = html + '<div id="divCnclBtn"><img src="Images/Cancel Button.png" id="cnclBtn" onclick="onSearchTextBlur();"></div>';
document.getElementById('divSearchResult').style['display'] = 'block';
setLoadingIcons(false);
}, function (resp) {
//console.log('ERROR: ' + resp);
setLoadingIcons(false);
});
}
因此,根据我在 Places API 参考资料中了解到的情况,这出乎意料地难以做到...
首先,使用 'in' with a bounding box(即国家/地区的边界框)代替 'at' 进行粗略过滤。
得到结果后,查看每个 place result's address property and filter them by address.country(或 address.countryCode)。
我使用此功能来检索用户搜索目的地的结果,但这会获取来自世界各地的所有结果,我如何区分来自特定国家/地区的结果
function getPlace() {
setLoadingIcons(true);
var places = platform.getPlacesService(),
entryPoint = H.service.PlacesService.EntryPoint,
txtSearch = document.getElementById('txtSearch');
places.request(entryPoint.SEARCH, { 'at': _HEREmap.getCenter().lat + ',' + _HEREmap.getCenter().lng, 'q': txtSearch.value, 'size': 5 }, function (response) {
var items = response.results.items;
var placeHTML = '<div><a href="#" onclick="return showMapForDistination({LAT}, {LNG});"> <input hidden name="lat" value="{LAT}"><input hidden name="lat" value="{LNG}">{TITLE} <img src="Images/navigation Icon.png" id="arr" width="15" /> </a></div>';
var html = '';
for (var i = 0; i < items.length; i++) {
html += placeHTML.replace("{TITLE}", items[i].title).replace("{LAT}", items[i].position[0]).replace("{LNG}", items[i].position[1]);
}
document.getElementById('divSearchResult').innerHTML = html + '<div id="divCnclBtn"><img src="Images/Cancel Button.png" id="cnclBtn" onclick="onSearchTextBlur();"></div>';
document.getElementById('divSearchResult').style['display'] = 'block';
setLoadingIcons(false);
}, function (resp) {
//console.log('ERROR: ' + resp);
setLoadingIcons(false);
});
}
因此,根据我在 Places API 参考资料中了解到的情况,这出乎意料地难以做到...
首先,使用 'in' with a bounding box(即国家/地区的边界框)代替 'at' 进行粗略过滤。 得到结果后,查看每个 place result's address property and filter them by address.country(或 address.countryCode)。