我正在开发一个android应用程序来处理离线地图。多亏了一些帮助,我创建了地图,并且能够离线加载地图。
现在我正在尝试创建路线,但我还不太明白如何去做。
如果我是正确的,我必须使用一个osm文件,其中包含节点、方式和关系,如here所述。
我的问题是,如何将此文件的数据加载到我的应用程序中?我还没有找到如何将这些数据加载到应用程序的任何示例。我发现这个osm文件可以转换成一个更小的pbf文件。
有人能解释一下如何使用这个OSM数据吗?有人能给我举个例子吗?还是我采取了错误的方法?
这段代码加载一个700kb的osm文件,但它没有加载mine文件,因为它有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_3.4和osmdroid_3.0.10。
谢谢

最佳答案

看看Graphhopper图书馆。到目前为止,这似乎是在android中路由osm数据的最佳库。
https://github.com/graphhopper/graphhopper/blob/master/docs/android/index.md

07-24 09:49
查看更多