OSM,OSMSharp,OSMdroid,MapBox ?!哪一个用?

时间:2014-05-08 13:05:14

标签: cordova xamarin openstreetmap osmdroid mapbox

我们正在开始一个需要渲染某些区域的离线地图的新项目。

还需要显示预先计算的(来自网络服务器来源)路线(无需应用内路由计算)

我们的目标是 android 设备,但我们必须对未来的跨平台兼容性非常谨慎,即发布相同的应用程序(应用程序的UI和逻辑的变化最小),对于其他平台(iOS,Windows,Windows Phone)。

我考虑使用 PhoneGap ,但通过使用PhoneGap,唯一共享的是UI。 然后我想到使用 Xamarin ,Xamarin更喜欢它,但“ OSMSharp ”库的文档非常糟糕。我担心使用 OSMSharp 并且无法解决应用程序开发过程中可能出现的问题。

关于 mapbox ,它是怎么回事?它能满足我们的需求吗?

我想让任何对这些东西有所了解的人的想法受益。

3 个答案:

答案 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。

查看OSMdroidhttps://code.google.com/p/osmdroid/

答案 2 :(得分:0)

如果你想成为跨平台,我会考虑不直接使用osmdroid / sharpdroid / ??? - api设置地图的显示内容,但使用kml文件格式。

对于osmdroid,OSMBonusPack中有一个kml-viewer支持。我不知道ios或OSMSharp是否有任何kml支持