我想创建一个商业Android GPS应用程序,允许路由的方式取决于速度限制和车辆限制,如我们的高度和宽度。我选择GraphHooper作为路由引擎,因为它不提供有关车辆大小的信息,所以我想添加一些卡车QA地图标签(http://maxheight.bplaced.net/overpass/map.html)并将其应用于GraphHooper的算法。
问题是GraphHooper是用Java编写的,从我在GitHub (https://github.com/mmd-osm/osm-maxheight-map)上看到的,QA地图是基于javascript, php和css的。我的问题是,是否有可能应用javascript, php和css代码到android项目?现在我正在考虑不同的解决方案,我想知道它是否可以在一般情况下完成。如果是,怎么做?
似乎有一个误解。
GraphHopper是一个路由引擎,能够处理OSM数据。同样,OSM卡车QA地图也只是使用OSM数据(特别是maxheight标签,OSM wiki有更多关于此地图的信息)。
如果GraphHopper不支持maxheight标签,那么你所要做的就是把它添加到GraphHopper中。绝对不需要从QA映射中提取它,因为它已经包含在GraphHopper使用的数据中。你只需要告诉GraphHopper在计算路由时额外检查这个标签,就像它已经检查了许多其他路由标签(如maxspeed, access等)一样。
OSM卡车QA地图的主要目的是帮助您发现OpenStreetMap数据中任何缺失的maxheight标签,或者可视化已经存在的卡车标签,如maxheight, maxweight等。事实上,所有的数据都来自出色的Overpass API,所以尝试从OSM卡车QA地图中提取数据没有多大意义。它实际上只是一个可视化工具,完全在浏览器中工作。
假设你已经有一个OSM行星或一些更小的提取可用于测试,所有这些maxheight, maxweight,…标签已经存在于该数据中。您只需要将它们包含在GraphHopper处理中(参见Scai的回复)。
…如果一些路由结果看起来很奇怪,您可能需要在OSM卡车QA地图上检查OSM数据中的实际标签是什么样子的,或者甚至检查过去一段时间的标签是什么样子的。