安卓离线路由

3

我正在开发一款与离线地图配合使用的Android应用程序。在得到一些帮助后,我已经创建了地图,并能够离线加载地图。

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

如果我没错的话,我需要使用像osm文件,其中包含节点、路径和关系,就像这里所描述的那样。

我的问题是,我怎样才能将该文件的数据加载到我的应用程序中呢?我无法找到任何关于如何将此数据加载到应用程序中的示例。我所发现的只是这个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。

谢谢

2个回答

8

这个库并不是很好,因为它只能处理一个图(一个国家或城市):https://discuss.graphhopper.com/t/how-to-set-routing-between-two-countries-load-two-gh-folders/3822 - user924

0
Mapsforge有一个用于压缩OSM数据和高效读取的库。这可能不是您的解决方案,但它比使用SAX解析器要好得多。

Mapsforge与路由无关。 - user924

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