【问题标题】:Offline routing in androidandroid中的离线路由
【发布时间】:2013-11-04 11:07:47
【问题描述】:

我正在尝试开发一个 Android 应用来处理离线地图。多亏了一些帮助,我已经创建了地图,并且能够离线加载地图。

现在我正在尝试创建路线,但我还没有完全理解如何去做。

如果我是正确的,我必须使用具有节点、方式和关系的 osm 文件,如 here 所述。

我的问题是,如何将这个文件的数据加载到我的应用程序中?我找不到任何关于如何将这些数据加载到应用程序的示例。我发现的只是这个 osm 文件可以转换成更小的 pbf 文件。

谁能解释我如何使用这个 osm 数据?谁能给我一个例子?还是我采取了错误的方法?

这段代码加载了一个 700kb 的 OSM 文件,但它没有加载我的文件,因为它有 99MB。

               // create the factory
           SAXParserFactory factory = SAXParserFactory.newInstance();
           // create a parser
           SAXParser parser = factory.newSAXParser();

           // create the reader (scanner)
           XMLReader xmlreader = parser.getXMLReader();

           // assign our handler
           xmlreader.setContentHandler(osmHandler);


           xmlInputStream = context.getResources().openRawResource(R.raw.lisboa);
           //xmlInputStream = context.getResources().openRawResource(R.raw.milano);
           //xmlInputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory()+File.separator+"MyMaps","Lissabon.osm"));

           xmlreader.parse(new InputSource(xmlInputStream));
           osmHandler.isLoaded=true;

我正在使用 osmbonuspack_v3.4 和 osmdroid_3.0.10。

谢谢

【问题讨论】:

    标签: android routing openstreetmap offline osmdroid


    【解决方案1】:

    看看 Graphhopper 库。到目前为止,这似乎是可用于在 android 中路由 OSM 数据的最佳库。

    https://github.com/graphhopper/graphhopper/blob/master/docs/android/index.md

    【讨论】:

    【解决方案2】:

    Mapsforge 有一个用于压缩 osm 数据并有效读取它的库。它可能不是您的解决方案,但它会比使用 SAX 解析器更好

    【讨论】:

    • Mapsforge 与路由无关
    猜你喜欢
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多