按行程时间/距离对项目进行排序

时间:2014-07-28 11:49:33

标签: bing-maps

我目前有一个应用程序可以计算与所选作业中其他作业的距离。目前我在SQL中使用DbGeography字段并进行距离计算。排序结果下降并占据前20名。

我现在要求将其转换为使用Bing地图而不是具有“作为乌鸦的距离”,它将使用适当的旅行距离。从我所看到的,我将需要做一些疯狂的交易来使这项工作。我对Bing Maps API缺乏经验,所以我希望有人会告诉我我错了。

如果我有500个作业的列表,并且用户选择一个。为了获得其他工作的旅行时间/距离,然后选择最近的20,我真的需要向路由API发送499个交易吗?

1 个答案:

答案 0 :(得分:3)

您需要使用路由API,但是您可以使用技巧来减少您拨打的电话数量。 Bing Maps Routing API允许您在单个路径请求中提供多个航路点(25)。您可以做的是创建一条从A点到B点到A点到C点到A点到D点的路线,依此类推12个地点。在响应中,您将在阵列中得到一堆路径支路。所有在数组中具有偶数索引的将是从A到另一个点的方向。然后你可以从那些路线腿上抓住距离。这会将您的500个API调用转换为大约42个调用。

您可以使用您使用的原始方法进一步优化此距离并预先计算距离,并使用该方法过滤前50或100个最近的位置,然后传递到路由服务。这将导致只需要发出5到10个请求。