离线地图带路线规划 - iOS

6
我正在处理一个与离线地图应用相关的项目。因此我在寻找可以显示指定区域的离线地图。我使用了MapBox进行离线映射。我可以在该地图上添加注释并绘制线条。
但是我的需求是具有路由功能的离线地图。我已经厌倦了寻找嵌入到Xcode中的离线路由库或离线路由引擎。
如果您有任何线索或示例项目/代码来实现此操作,将不胜感激。
注意:这个问题与我的问题相关。然而没有人回答过它。
谢谢。

我猜如果我们能够获得某条路线的一组纬度/经度,那么绘制折线就很容易了。MapBox提供了在地图上绘制折线的方法。 有人可以提供一个解决方案吗?也就是说,当我们提供起点和终点时,如何获取路径的一组纬度/经度。 - Sukitha Udugamasooriya
你找到任何可行的解决方案了吗?我将不得不实现类似的功能,但目前还没有解决方案。 - Centurion
你好,能告诉我你是如何使用MapBox做离线地图的吗? - 08442
你能给我一些示例项目/代码来展示如何做到这一点吗?请帮忙。 - 08442
请查看 https://github.com/graphhopper/graphhopper-ios/ - Karussell
3个回答

4
离线意味着没有互联网,但iPhone在大多数情况下仍然可以通过GPS获取用户当前位置。这意味着您可以相当自信地在离线状态下找到用户的当前位置。
离线路由的问题在于手机很愚笨,它只记住了x兆字节的瓦片数据以供显示。
路由是完全不同的事情,它需要从点A和B中找出最短、最快、最便宜或所有这些之间的路线。
这需要更多的东西来完成,毕竟如果你按照MVC的方式思考,瓦片只是简单的视图,它们对周围的情况一无所知,除了它们内部的内容。那么“控制器”将计算路线,为此您需要拥有跨期望路由区域的所有数据。
对于每个映射服务,您会找到不同的路线,可能不是实际路径,但是估计时间、精力等。这意味着如果您有自己的地图(离线数据库),则由您使用该数据,因此您应该编写自己的路由算法,我相信这不是您想要做的。
那么你的选择是什么?目前,在你想要的范围内这是不可能的。即使您拥有离线地图数据库,您仍然需要路由算法。

@Danial:首先,非常感谢您详细的解释。感谢您提供的信息。正如您所说,我正在寻找已经实现的路由库或引擎。如果它是特定区域的路线,对我来说并不重要。我只考虑路由(在10x10公里范围内就足够了)。如果您能分享任何适合我需求的路由库或引擎,我将不胜感激。谢谢 - Gayan
有许多商业离线路由引擎/SDK适用于iOS。此外,也有开源的解决方案,请参见Umamaheswari的回答。 - Karussell

0

您可以使用Graphhopper库通过创建包含(街道名称、路线、边缘)的图形数据来进行离线路由。图形数据是通过.pbf文件获取的,可以通过(使用此链接:http://download.geofabrik.de)获取,并使用(https://github.com/graphhopper/graphhopper-ios/tree/master/graphhopper-ios-sample)中提供的命令(在终端中)将.pbf转换为图形数据。然后,我们可以按照其说明(在graphhopper iOS示例中提供了所有说明)进行离线路由。请仔细参考,因为我已经成功完成了我的项目。


请考虑重新撰写您的问题,以改善语言表达。 - MERose

0

在离线情况下,您也可以仅使用GPS获取当前位置,并且可以从当前位置绘制覆盖线到有趣的点,为此您需要进行一些计算。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接