【问题标题】:Optimizing Bing Maps Geocode and RouteMapping requests优化 Bing 地图地理编码和 RouteMapping 请求
【发布时间】:2011-01-17 01:55:11
【问题描述】:

我有一个包含订单的数据库,每个订单都有一个关联的位置。目前,当用户登录时,我正在使用 Bing Maps API 对每个订单位置进行地理编码,然后计算到登录用户的行驶距离。基于这些距离,用户可以通过下拉框指定最大距离,结果显示在网格视图中。但是,如果订单超过 100 个,则流程变得非常缓慢。我会很感激一些关于优化 bing 查询的技巧,可能缓存结果(因此可以在不重新访问 bing maps api 的情况下重复使用它们)或利用 Ajax 以某种方式在后台处理订单。谢谢。

【问题讨论】:

    标签: c# sql ajax optimization bing-maps


    【解决方案1】:

    我计划在不久的将来做类似的事情,所以我有一些建议,但还没有实际的代码可以分享。希望有用。

    我希望将每个项目的纬度/经度存储在我的数据库中(因此它只被地理编码一次)。要选择距某个点一定距离内的项目,我将计算中心点北/南/东/西“x”英里的纬度/经度数。然后选择变得很简单,选择纬度/经度值介于我的正方形值之间的记录。

    是的,我知道从技术上讲我应该使用一个圆圈来精确控制距离,但这更容易和更快。如果你真的需要用圆来做更精确的限制,先用这个方法,然后用更复杂的计算,把圆外边角的项目剔除掉。

    我不熟悉 Bing 的许可,但如果我没记错有关 google 的信息,您需要有付费(商业)许可来存储地理编码的结果。而且它并不便宜。所以这可能会否定我的建议可能具有的任何价值:(

    编辑;我只是更仔细地阅读了这个问题,我发现它是在谈论行驶里程,而不是线性里程。所以,我的回答并不真正适用,除非你想用它来缩小你必须做的行驶距离计算的数量。

    另外,关于地理编码和许可,您可以查看geocoder.us,它非常便宜。

    【讨论】:

      【解决方案2】:

      假设您对用户有相同的目标位置,您可能想要做的是创建一个最小生成树。 MST 仍然是 O(V^2),但您有效地缓存了许多最短路径,因为它们中的许多将重用相同的道路。

      另一种选择是首先使用线性距离来代替道路里程进行估算,但这完全取决于您要发送回用户的内容。

      祝你好运!

      【讨论】:

      • MST 如何帮助您获得最短路径?如何决定是否可以沿着 MST 使用“缓存”?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多