繁体   English   中英

使用Optaplanner和Google Maps进行车辆路线选择

[英]Vehicle Routing with Optaplanner and Google Maps

我目前正在构建一个类似于Optaplanner车辆路线示例的应用程序。 区别在于:它是基于Web的,可视化和距离计算将使用GWT Google Maps V3方向服务。 就像这里的optaplanner博客文章一样: 使用Leaflet和Google Maps可视化车辆路线

我实际上对计算每个位置之间的距离有些困惑,应该实时进行吗? 我的意思是实时是在开始求解阶段之前,首先加载位置(大约350个位置),然后计算每个位置之间的距离(这将导致350 x 350 = 122500方向请求)。

我可以考虑的另一种方法是,计算每个位置的距离并将其存储在数据库中,然后在开始求解阶段之前加载数据。 但是,如果我选择这种方式,该如何处理位置变化? 即添加新位置还是删除现有位置?

我还阅读了有关Google Maps API的限制,它指出该服务每24小时仅可用于2500请求。 如何解决这个限制?

任何意见和答案将不胜感激。 谢谢并恭祝安康。

我已经成功地将MapPoint与MPMileage和CDXZipStream一起使用,以使用MapPoint和CDXZipStream维护位置(地址+坐标)的数据库。 使用MPMileage和MapPoint可以保持两点之间的行驶时间。 Microsoft不再出售MapPoint,但您可以在eBay上找到副本或找到替代品。 MPMileage和CDX简化了我的工作。 我可以根据需要查询MapPoint-它提供了大约每秒8次旅行的旅行时间-没有限制,但您需要花费时间。 我的数据库现在拥有超过60万次旅行和15,000个位置。 而且,这些产品需要约$的支出。 我花了300美元买了我提到的这三种产品,比Google的商业许可少得多。 Maptitude可以替代MapPoint,但是Maptitude可能无法控制街道速度。

在运行解决方案之前,我先进行查询,以确保对所需的坐标进行了地理编码,并且潜在的支腿(两点之间的行程)在数据库中。 如果没有,我将使用我提到的工具填写或更新值。 我的特定方法不利于按需工作,但是您可以自己编写这样的过程。

我通过施加一些合理的假设来限制搜索空间,例如,在我的情况下,没有旅行超过13英里。 您可能可以施加类似的约束来限制搜索空间。 在任何时候,我可能只使用大约60,000的旅行时间,因为仅加载了所需的时间-其余的保留在数据库中,以备将来日后使用时使用。 在OptaPlanner解决方案中,这些是事实,而不是实体或变量。 这些事实提供了两点之间的旅行时间。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM