在当前实现中,我只是添加国家/地区进行查询,但这个逻辑是不正确的。
$.ajax({
url: 'https://dev.virtualearth.net/REST/v1/Locations/'
+ searchString + ' ' + currentCountry + '?c=' + currentCulture + ...,
dataType: 'script'
});
但是,如果我尝试在 currentCountry 之外搜索 city,我会找到 currentCountry,但找不到 searchString 。
Example: searchString = Boston, currentCountry = Australia
第二种方法 - 从查询中完全删除 currentCountry,但这会导致另一个错误。 我在当前国家找不到不那么出名的地方了
Example: searchString = Moscow, currentCountry = USA.
此查询的结果将是 - 俄罗斯莫斯科,而不是华盛顿特区莫斯科
是否能够指定搜索国家/地区? 第一次尝试搜索将在当前国家/地区,如果失败,则第二次将在所有世界中进行搜索。
最佳答案
如果您阅读了 Bing map 的最佳实践,它实际上建议在地理编码时使用非结构化 URL 格式而不是结构化格式,因为这会提高结果的准确性:https://msdn.microsoft.com/en-us/library/dn894107.aspx
为了将结果限制为单个国家/地区,只需将国家/地区附加到查询中即可。
您的代码很接近,但应该有一个逗号,并且您将使用查询参数,因为您使用的格式适用于反向地理编码坐标。这是代码的修改版本:
$.ajax({
url: 'https://dev.virtualearth.net/REST/v1/Locations?q='
+ encodeURIComponent(searchString + ', ' + currentCountry) + '?c=' + currentCulture + ...,
dataType: 'script'
});
您还希望对查询值进行编码,以确保特殊字符不会导致任何问题。
关于ajax - 如何在 Bing Maps Ajax 中优先考虑搜索国家/地区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783779/