我正在尝试开发一个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;
Run Code Online (Sandbox Code Playgroud)
我正在使用osmbonuspack_v3.4和osmdroid_3.0.10.
谢谢
我正在开发一个需要使用蓝牙的应用程序.问题是我有几个使用蓝牙通信的活动,我正在创建一个进行通信的类.为此,我需要将结果重新发送到活动.我正在尝试实现这样的活动:
public abstract class MyCommunicationActivity extends Activity {
public static class MYHANDLER extends Handler{};
}
Run Code Online (Sandbox Code Playgroud)
我想强制每个活动创建一个处理来自通信类的响应的HANDLER,这个类将接收一个对象MyCommunication类,因此它知道该活动将挥动一个子类,它是处理结果的处理程序.我这样做了,但是我的子类(那些扩展MyCommunicationActivity的子类)没有强制实现处理程序.
我怎样才能做到这一点?可能吗?