【问题标题】:Inconsistent Results from Bing Maps Geocoder必应地图地理编码器的结果不一致
【发布时间】:2013-02-07 09:09:28
【问题描述】:

我编写了一个应用程序,它解析 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

【问题讨论】:

    标签: geocoding geospatial bing-maps


    【解决方案1】:

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

    我确定您使用的是 Bing 地图密钥,它是试用版或基本密钥。由于明显的原因(在 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/library/ff701733.aspx

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

    【讨论】:

    • 谢谢,尼古拉斯。我有企业许可证,所以我认为我没有速率限制。话虽如此,我的成功率似乎在一天中的不同时间以及从一天到另一天都在变化,所以我想知道这是否与 Bing Maps 服务器上的一般负载有关。我现在将密切关注 X-MS-BM-WS-INFO 标头,看看是否有任何指示。将来我肯定会使用批量地理编码,但我不值得重构这个应用程序,所以如果我能找到解决方法,那就更好了。
    • X-MS-BM-WS-INFO 始终为 0,即使在上述故障的情况下也是如此。我用示例请求和响应更新了 OP。
    • 由于您是企业客户,您应该联系技术支持,以便他们上报。请提供详细信息(如此帖子的链接),以便他们可以拥有 traceId 和标题中包含的不同信息。
    • @RaySaltrelli - 你找到解决方案了吗?我也有同样的问题。
    • @MikeCole - 您是否尝试验证我们在这里讨论的要点?如果您是企业帐户,请联系支持人员,他们将进一步帮助您
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2011-10-22
    • 2011-09-10
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多