名字:Nov_Eleven_Map
主要功能:定位,路线搜索(驾车、公交、步行)
百度地图api官网:http://developer.baidu.com/map/sdk-android.htm
主要用到的类:
- BMapManager 这个是地图引擎的管理类。要注意的地方:1、要在setContent()前使用;2、一个软件只需要一个BMapManager对象,我在主Activity把它定义为static类型的,然后在其他Activity共享使用。
- MapView 这个是显示地图的View
- MapController 这个是MapView的控制类,使用MapView的getController()方法获得。
- LocationClient 定位类。
- BDLocationListener 定位监听器。
- LocationData 位置数据。
- MyLocationOverlay 我的位置图层。
- MKSearch 搜索类。
- MKSearchListener 搜索监听类。
- LocationClientOption MKSearch类的配置类。
- BMapManager对象必须在setContent()前初始化,不然会报错。一个程序只需要一个BMapManager对象,多个会造成MapView卡屏。
- 实践中发现MapView对象好像是只有一个实例。在使用MKSearch类的时候,在onDestroy()方法里,不要调用MapView的destroy方法。因为搜索过程是异步进行的,如果在MKSearchListener里使用到MapView对象,因为是异步,所以可能会在MKSearchListener的方法里使用到销毁后的MapView。
- MapController对象的animateTo()方法不能再主线程内调用。会出现黑屏的现象。可以使用post方法调用。
- MKTransitRoutePlan对象的getContent()方法返回null,要获取路程的详细内容,使用getLine()和getRoute()方法获取Line对象和Route对象。线路的结构是route-line-route的结构。用for循环获取线路数然输出站名和距离。
- 要获取城市名,目前详细位置名字:option.setAddrType("all")
- 单击按钮关闭软键盘方法:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mTextEnd.getWindowToken(), 0);