如何在 Bing 地图 Ajax 中优先搜索国家/地区
How can I prioritize search country in Bing Maps Ajax
在目前的实现中,我只是添加国家来查询,但这个逻辑是不正确的。
$.ajax({
url: 'https://dev.virtualearth.net/REST/v1/Locations/'
+ searchString + ' ' + currentCountry + '?c=' + currentCulture + ...,
dataType: 'script'
});
但如果我尝试从 currentCountry 中搜索城市,我会找到 currentCountry,但找不到 searchString。
Example: searchString = Boston, currentCountry = Australia
第二种方法 - 从查询中完全删除 currentCountry,但这会导致另一个错误。
我不会在 currentCountry
找到不那么出名的地方
Example: searchString = Moscow, currentCountry = USA.
此查询的结果将是 - 俄罗斯莫斯科,而不是华盛顿莫斯科,D.C。
是否可以指定搜索国家/地区?
搜索的第一次尝试将在当前国家/地区进行,如果失败,则第二次将在整个世界进行搜索。
根据 Find a Location by Address,您可以根据 特定国家/地区 .
的一组地址值获取纬度和经度坐标
示例:
查询:
http://dev.virtualearth.net/REST/v1/Locations/US/Moscow?o=xml&key=BingMapsKey
Note: A structured URL specifies the location data for the country
(US in this example) as part of the URL path.
将 return 个地点 Moscow
位于美国。
如果您阅读 Bing 地图的最佳实践,它实际上建议在地理编码时使用非结构化 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({
url: 'https://dev.virtualearth.net/REST/v1/Locations/'
+ searchString + ' ' + currentCountry + '?c=' + currentCulture + ...,
dataType: 'script'
});
但如果我尝试从 currentCountry 中搜索城市,我会找到 currentCountry,但找不到 searchString。
Example: searchString = Boston, currentCountry = Australia
第二种方法 - 从查询中完全删除 currentCountry,但这会导致另一个错误。 我不会在 currentCountry
找到不那么出名的地方Example: searchString = Moscow, currentCountry = USA.
此查询的结果将是 - 俄罗斯莫斯科,而不是华盛顿莫斯科,D.C。
是否可以指定搜索国家/地区? 搜索的第一次尝试将在当前国家/地区进行,如果失败,则第二次将在整个世界进行搜索。
根据 Find a Location by Address,您可以根据 特定国家/地区 .
的一组地址值获取纬度和经度坐标示例:
查询:
http://dev.virtualearth.net/REST/v1/Locations/US/Moscow?o=xml&key=BingMapsKey
Note: A structured URL specifies the location data for the country (US in this example) as part of the URL path.
将 return 个地点 Moscow
位于美国。
如果您阅读 Bing 地图的最佳实践,它实际上建议在地理编码时使用非结构化 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'
});
您还想对查询值进行编码以确保特殊字符不会导致任何问题。