2013-11-04 49 views
3

我想开发一个Android应用程序来使用离线地图。感谢一些帮助,我创建了地图,并且能够离线加载地图。在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。

谢谢

回答

0

Mapsforge具有用于压缩OSM数据和用于有效地读出它的库。它可能不是你的解决方案,但它会比使用SAX解析器更好