地理编码API不可靠

时间:2015-04-20 18:50:38

标签: rest geocoding bing bing-maps

我遇到了bing map地理编码API的问题。 API不可靠。相同的查询不会始终返回相同的结果。

此查询 http://dev.virtualearth.net/REST/v1/Locations/?key=myKey&o=xml&countryRegion=CA&postalCode=g0a4b0

将不返回地址

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>
Copyright © 2015 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.
</Copyright>
<BrandLogoUri>
http://dev.virtualearth.net/Branding/logo_powered_by.png
</BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>0</EstimatedTotal>
<Resources/>
</ResourceSet>
</ResourceSets>
</Response>

或地址

<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>
Copyright © 2015 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.
</Copyright>
<BrandLogoUri>
http://dev.virtualearth.net/Branding/logo_powered_by.png
</BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>1</EstimatedTotal>
<Resources>
<Location>
<Name>G0A 4B0, QC</Name>
<Point>
<Latitude>46.679374694824219</Latitude>
<Longitude>-72.049674987792969</Longitude>
</Point>
<BoundingBox>
<SouthLatitude>46.675511977253542</SouthLatitude>
<WestLongitude>-72.0571812840852</WestLongitude>
<NorthLatitude>46.683237412394895</NorthLatitude>
<EastLongitude>-72.042168691500734</EastLongitude>
</BoundingBox>
<EntityType>Postcode1</EntityType>
<Address>
<AdminDistrict>QC</AdminDistrict>
<AdminDistrict2>Portneuf</AdminDistrict2>
<CountryRegion>Canada</CountryRegion>
<FormattedAddress>G0A 4B0, QC</FormattedAddress>
<Locality>Saint-Marc-des-Carrières</Locality>
<PostalCode>G0A 4B0</PostalCode>
</Address>
<Confidence>High</Confidence>
<MatchCode>Good</MatchCode>
<GeocodePoint>
<Latitude>46.679374694824219</Latitude>
<Longitude>-72.049674987792969</Longitude>
<CalculationMethod>Rooftop</CalculationMethod>
<UsageType>Display</UsageType>
</GeocodePoint>
</Location>
</Resources>
</ResourceSet>
</ResourceSets>
</Response>

有没有办法让Bing地理编码API更可靠?

是因为我使用基本密钥并拒绝我的查询,因为服务器过载了吗?

谢谢

2 个答案:

答案 0 :(得分:2)

您的陈述不正确,因为您似乎不尊重您在创建基本密钥时同意的使用条款。

这些类型的密钥在给定时间段内的请求数量有限,这里有一篇关于MSDN的精确文章,详细解释了这些限制:

https://msdn.microsoft.com/en-us/library/dn894107.aspx

关于状态和代码的另一个问题:

https://msdn.microsoft.com/en-us/library/ff701703.aspx

费率限制和信息

以下是进一步管理错误的有趣部分:

  

速率限制

     

在Bing Maps中,使用条款试用版和基本密钥是   他们可以在a内生成的交易数量有限   一段的时间。 Windows应用商店,Windows Phone和WPF应用都有   24小时内限制50,000笔交易。面向公众的网络   网站和非Windows移动应用限制为125,000笔交易   一年。当请求的频率发生时,会发生速率限制   针对Bing Maps,帐户的REST和/或SOAP服务超出了   这些免费使用条款。当速度限制也可能发生   服务负担很重。这样做是为了确保   试用和基本密钥的使用不会中断这些服务   使用企业密钥。企业密钥不受速率限制   绕过速率限制的唯一方法是升级到企业   键。有关更多信息,请参阅我们的Bing Maps许可选项   页。

     

当请求受到速率限制时,响应将返回no   结果。这可能会让人感到困惑,因为它看起来像Bing Maps   无法找到结果。表明请求是速率限制的   一个标志被添加到响应的标题(X-MS-BM-WS-INFO)中   如状态代码和错误所述,将值设置为1   处理页面。为了获得更好的用户体验,应用程序   使用试用版或基本键应该在标题中查找此标志   处理速率受限的请求。像记录一样简单   请求日志中的请求速率受限的事实可以   在调试报告的问题时提供帮助。

答案 1 :(得分:-1)

那里有很多其他地理编码提供商。如果您的应用程序必须能够依赖快速,可扩展且可靠的地理编码提供商,您可能最终会支付高级服务的费用。

GeoCoding providers for non-map use