我们正在开始一个需要渲染某些区域的离线地图的新项目。
还需要显示预先计算的(来自网络服务器来源)路线(无需应用内路由计算)
我们的目标是 android 设备,但我们必须对未来的跨平台兼容性非常谨慎,即发布相同的应用程序(应用程序的UI和逻辑的变化最小),对于其他平台(iOS,Windows,Windows Phone)。
我考虑使用 PhoneGap ,但通过使用PhoneGap,唯一共享的是UI。 然后我想到使用 Xamarin ,Xamarin更喜欢它,但“ OSMSharp ”库的文档非常糟糕。我担心使用 OSMSharp 并且无法解决应用程序开发过程中可能出现的问题。
关于 mapbox ,它是怎么回事?它能满足我们的需求吗?
我想让任何对这些东西有所了解的人的想法受益。
答案 0 :(得分:2)
如果您正在寻找免费的开源解决方案,请参阅有关Android专用解决方案的一些反馈:
某些区域的离线地图+离线路线=> Mapsforge + Graphhopper。
离线地图+在线路线=> osmdroid + OSMBonusPack 您还可以存储预先计算的路由,例如GeoJSON或KML本地文件。
PhoneGap:我不认为你可以轻松拥有离线地图,因为它是一个HTML包装解决方案。
MapBox:Android SDK是osmdroid的一个分支。它还不稳定,没有包含路由。与osmdroid相比,我目前没有看到任何增值。
作为结论:在您的上下文中,Mapsforge和osmdroid之间的选择可能很难做到。 osmdroid很强大,但离线文件可能很大。 Mapsforge文件格式要小得多,但地图刷新看起来很慢(Galaxy Ace 2)。
(我不知道Skobbler。这很有趣。感谢Ando)
答案 1 :(得分:0)
首先,我建议使用OSMdroid
这绝对适合离线地图和优化,所有者可以帮助您解决任何问题。如果您正在寻找跨平台,我不确定这是您正在寻找的API,但对于Android来说,这肯定是最广泛和最容易适应和构建的API。
查看OSMdroid
:https://code.google.com/p/osmdroid/
答案 2 :(得分:0)
如果你想成为跨平台,我会考虑不直接使用osmdroid / sharpdroid / ??? - api设置地图的显示内容,但使用kml文件格式。
对于osmdroid,OSMBonusPack中有一个kml-viewer支持。我不知道ios或OSMSharp是否有任何kml支持