2

我编写了一个应用程序,它解析 CSV 文件、提取地址并使用 Bing Maps REST API 对其进行地理编码。我遇到的问题是,如果我多次运行同一个文件,我会得到不同的结果。在第一次试验中,第 2 行和第 6 行可能不会返回任何匹配项。在接下来的试验中,第 2 行和第 6 行将返回匹配项,而第 4 行可能不会。我使用 Fiddler 检查了 HTTP 流量。我的请求格式正确,每个响应都返回 HTTP 状态代码 200 和有效的 JSON,只有一些地址产生结果,而另一些则没有,并且特定地址的成功或失败因试验而异。任何人都可以提供任何见解吗?

更新


样品要求:

GET http://dev.virtualearth.net/REST/v1/Locations?o=json&adminDistrict=MI&locality=Shelby&postalCode=49455-1299&addressLine=72+South+State+Street&key={MyApiKey} HTTP/1.1
Host: dev.virtualearth.net

示例响应:

HTTP/1.1 200 OK
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Server: Microsoft-IIS/8.0
X-BM-TraceID: 9b6cfaa0abdb47b7b7e2790900bcddce
X-BM-Srv: BL2M001304, BL2MSNVM001275, BL2MSNVM001299
X-MS-BM-WS-INFO: 0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 22 Feb 2013 15:14:30 GMT

247
{
    "authenticationResultCode":"ValidCredentials",
    "brandLogoUri":"http:\/\/dev.virtualearth.net\/Branding\/logo_powered_by.png",
    "copyright":"Copyright © 2013 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.",
    "resourceSets":
    [
        {
            "estimatedTotal":0,
            "resources":[]
        }
    ],
    "statusCode":200,
    "statusDescription":"OK",
    "traceId":"9b6cfaa0abdb47b7b7e2790900bcddce|BL2M001304|02.00.83.1900|BL2MSNVM001275, BL2MSNVM001299"
}
0

我在 MSDN 论坛上的帖子:http: //social.msdn.microsoft.com/Forums/en-US/bingmapsservices/thread/c7fea1b2-f87e-40c2-a3a6-496989a338b2#b885ca9a-018a-491f-9caa-a00a515cf9a8

4

1 回答 1

5

必应地图密钥和速率限制信息

我确定您使用的是 Bing Maps 密钥,该密钥将是试用版或基本密钥。由于明显的原因(在 24 小时内和请求之间的时间间隔),这种类型的密钥受到速率限制,这就是为什么您得到一个空白响应而没有任何关于它未能进行地理编码的事实的信息的原因。

请参阅有关限制和其他限制的使用条款(压力测试和锤击是其中的一部分): http: //www.microsoft.com/maps/product/terms.html

因此,为了解决您的问题,您应该:

  • 检查您正在使用的密钥类型以及您在特定时间段内拨打的电话次数
  • 检查响应的标头,它应该包含一个特定的标头值:X-MS-BM-WS-INFO设置为 1

有关错误处理,请参阅 MSDN:http: //msdn.microsoft.com/en-us/library/ff701703.aspx

如果您不是这种情况(如果您有企业帐户),请联系技术支持,以便他们可以正式回复您并检查密钥。

附加信息:

由于您使用的是使用 CSV 的地理编码器,我强烈建议使用 Bing 地图空间数据服务来执行批量地理编码,请参阅 MSDN 上的完整信息:http: //msdn.microsoft.com/en-us/图书馆/ff701733.aspx

它将减少您将进行的事务数量(每个地理编码数据流作业计为 1 个事务,并且每个文件可以包含超过 200 000 个实体)。

于 2013-02-21T21:57:28.340 回答