数据采集个人博客——途知旅行助手路径规划算法选择与api调用实现
1、算法对比选择
首先当然从算法选择讲起,根据我们的应用需求,我们需要根据用户选择的景点,为用户规划出一套可行的路线方案,因此我们要选择与路径规划有关的算法,因为如果我们自己设计算法需要考虑太多复杂场景,如山地、郊区、城市、高速等场景,我们的算法效率也远不及市场已经成熟孵化的主流软件的算法,因此我们考虑通过调用他们的api利用其封装好的路径规划算法,然后结合我们的使用场景进行部署。
于是我们进行调研,我发现,国外的地图api工具,如:Google Maps、Azure Maps等,在国内有很多部署障碍,如不同的地理编码标准,还有市场准则限制,甚至面临违法风险,从另一方法来说,国内的api如高德地图和百度地图,专注于在华数据,所以其存储的信息更详细和准确,因为我们甚至可以经常在短视频平台看到,谷歌地图在中国的导航甚至出错。


当我们希望选择国内的api时,又面临选择,国内有两大头牌:高德地图和百度地图,我们详细调研其优劣,我们综合考虑对比:1、百度地图在城市优势明显,郊区覆盖相对较弱,这是由于其更专注于城市道路,以及商业POI的定位服务,它专注于车道级的路径选择服务,甚至可以指导每条道路行驶的车道,而高德地图其优势在于场景复杂化,如多场模态的路径选择,尤其在高速,堵车等情景,高德地图不论是数据的更新,还是最后路径的规划能力都优于百度。而在我们这款旅行助手,往往要综合考虑用户需求,因为用户可能旅行一座城市、多个城市、甚至跨市、跨省,所以从这个角度,高德地图更适合我们的项目。
另外,从移动端响应速度、开发者友好程度对比,高德地图也凸显了一定的优势,因此综上我们选择高德地图api工具。

2、API部署
2.1开发者手册细节
开发者手册网址:https://lbs.amap.com/api/webservice/guide/api/convert
要试着调用高德地图API工具,我们要熟悉其接口,我们根据其手册可以熟悉其开放接口功能,高德地图向外提供了坐标转换接口,我们必须把非高德坐标先转换为高德坐标。

而后我们翻阅具体的路径规划算法接口,我们发现不论是高德还是百度,他们都针对某一类型车辆专门设计了路径规划算法,显然是的每一种车辆甚至可行驶的道路都有区别,而对于我们所要做的旅行规划路线确是要考虑综合情形的,我们应该明确告知用户路线和交通工具。
我们发现了有一个有趣的事情,只有在驾车路径规划算法中存在途径点输入,其他交通工具都不提供,于是它让我们看到了实现了一次性对所有景点进行统一路径规划拿到初始出行方案的可能性。而后根据网页提示的方法,其实我们也掌握了调用方法。

2.2结合项目的算法运用方案设计
我们的总体思路是:由驾车规划路径算法先统筹规划一条完整的,途径所有景点的路线,其出发点和起始点由用户确定(这往往是酒店),但显然这样的路径是粗糙的,因为这意味着用户所有的出行方式只能是坐车,这是不合理的,因此我们调用其他算法来优化路径,我们通过对每一小段的路径进行筛查,制定一套筛选规则(如距离小于500m,则可以有选择步行的可能性),对每一小段路径进行精细化调整,这是为了调整一些不合理的路线规划,如明明是穿过某一巷子可以到达的地点,驾车可能需要绕远路。
当然我们需要的是一条合理的路径,合理是指我们需要确保用户到达所有景点,景点不会是没有开放的,所有的路径不会不可通行。而在交通代价方面我们需要结合出行方便和舒适度考虑,我们驾车相比地铁可以实现准确的地点送达,但价格高,而地铁除了一些特殊地点,还需要花费很长时间步行,所以这一切都需要与用户的交互,为用户个性化定制路径,如向用户询问是否愿意选择步行,骑行,公交等方案,并选择最大希望花费代价。并且我们引入千问大模型为我们对路径可行性进行评估,并最终推荐给用户。



2.3具体代码细节:
API配置,包括地图API和AI的API

接着是路径规划部分,先使用驾车路径规划拿到粗度较大的初始路径,保留其游玩顺序,然后逐二评估优化空间:

通过替换规则筛选路段进行合理评估,生成混合路线:

最后通过合理性检验和AI评估工作,AI会根据路线进行评价(我们让AI考虑天气、花费代价、活动等七种客观因素),并且给出各个方案的推荐指数:

3.结果展示和后续项目部署
3.1代码测试结果
运行代码,我们可以从测试数据中拿出数据,先形成初始的驾车方案,然后再进行其他出行方式的接入。

然后我们对结果进行可行性评估和AI评估,显然改路线是不可行的,我们最后会把结果打包上传给后端,其会根据结果与用户进行交互,让用户修改需求。


3.2后续项目部署
我在项目中增加数据库连接配置获取具体真实的数据,然后把打包后的路径数据和评估结果交给后端的苏琎宇同学,经过研讨我们认为这样的路径规划也很粗糙,于是后续我们对路径实现了可视化,并且通过AI截图分析工具,让AI进行路径优化和更新,让路径正确性得到提高。这是最后的路径成功展示,我们可以自由选择出行方式,满足个性化出行要求:

