Android使用百度地图的注意点
16lz
2021-01-26
/*http://my.oschina.net/lifj/blog/283063*/
0.不要参考官方的网页示例
很奇怪,他的官网的使用示例更新不及时。
下载api的时候,里面有一个demo。最好参看这个。
1.需要申请key。并且在Manifest中申明这个key:
在application标签中声明meta-data。
<application><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="das213jkad98321oklasme2i13oja"></meta-data>。。。。。</application>
2. 在代码中使用了百度地图,同时也使用了混淆代码。
工程目录下的:proguard-project.txt 中的末尾添加如下文字:
-keepclasscom.baidu.**{*;}-keepclassvi.com.gdi.bgl.**{*;}
如果不添加,会在安装了app后,使用百度地图的时候有错误,应该是baidu 之类的字被混淆了,然后找不到了:
java.lang.NoClassDefFoundError:com/baidu/platform/comjni/engine/AppEngine
3. PoiSearch 这个类,按照官方文档是有的,但是在2.4.2的api中,已经找不到了。改用MKSearch类。
使用方法如下:
privateBMapManagermapManager=null;privateMKSearchmkSearch=null;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);mapManager=newBMapManager(getApplication());mkSearch=newMKSearch();mkSearch.init(mapManager,newMySearchListener());mkSearch.poiSearchNearBy("美食",newGeoPoint((int)(39.99537*1E6),(int)(116.311878*1E6)),2000);}publicclassMySearchListenerimplementsMKSearchListener{@OverridepublicvoidonGetAddrResult(MKAddrInfoarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetBusDetailResult(MKBusLineResultarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetDrivingRouteResult(MKDrivingRouteResultarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetPoiDetailSearchResult(intarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetPoiResult(MKPoiResultmkPoiResult,inttype,interror){//TODOAuto-generatedmethodstubif(error!=0||mkPoiResult==null){Toast.makeText(MainActivity.this,"抱歉,未找到结果",Toast.LENGTH_LONG).show();return;}//将Poi结果显示到地图上PoiOverlaypoiOverlay=newPoiOverlay(MainActivity.this,mapView);poiOverlay.setData(mkPoiResult.getAllPoi());mapView.getOverlays().clear();mapView.getOverlays().add(poiOverlay);mapView.refresh();for(MKPoiInfomkPoiInfo:mkPoiResult.getAllPoi()){if(mkPoiInfo.pt!=null){mapView.getController().animateTo(mkPoiInfo.pt);break;}}}@OverridepublicvoidonGetShareUrlResult(MKShareUrlResultarg0,intarg1,intarg2){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetSuggestionResult(MKSuggestionResultarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetTransitRouteResult(MKTransitRouteResultarg0,intarg1){//TODOAuto-generatedmethodstub}@OverridepublicvoidonGetWalkingRouteResult(MKWalkingRouteResultarg0,intarg1){//TODOAuto-generatedmethodstub}}
更多相关文章
- Android(安卓)MediaPlayer源码分析总结
- Android动态创建布局常用方法
- Android(安卓)Fragment使用小结
- Android(安卓)Studio Build Output 汉字乱码
- PhoneGap+JQuery示例项目
- 【Android(安卓)Developers Training】 5. 序言:添加Action Bar
- Android(安卓)混淆机制
- 【Android】用retrofit2和rxjava2搭建网络请求框架
- 使用gradle打包签名及混淆的apk