ajax - 如何在 Bing Maps Ajax 中优先考虑搜索国家/地区

标签 ajax search bing-maps

在当前实现中,我只是添加国家/地区进行查询,但这个逻辑是不正确的。

$.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/

相关文章:

javascript - 在 jQuery.post 上,我收到消息 : The method GET is not allowed for the requested URL

Python - 在文本中搜索出现

search - Solr Facetting - 显示前 10 个结果和其他

javascript - 使用 Bing Maps API 的多个自定义标记

javascript - 如何基于图钉在 Bing map 上绘制多边形?

javascript - 通过 Ajax 响应获取的字段中的 JS 问题

javascript - 使用AJAX数据源时,可以在Select2中设置查询字符串参数吗?

javascript - 转义ajax响应数据中的特殊字符

c# - 任何形式的 Google 搜索 API 可用于 C#?

javascript - bing map 中未触发 directionsError 事件