/*
http://my.oschina.net/lifj/blog/283063
*/
0.不要参考官方的网页示例
很奇怪,他的官网的使用示例更新不及时。
下载api的时候,里面有一个demo。最好参看这个。
1.需要申请key。并且在Manifest中申明这个key:
在application标签中声明meta-data。
android:name="com.baidu.lbsapi.API_KEY"
android:value="das213jkad98321oklasme2i13oja" >
。。。。。
2. 在代码中使用了百度地图,同时也使用了混淆代码。
工程目录下的:proguard-project.txt 中的末尾添加如下文字:
-keep class com.baidu.**{*;}
-keep class vi.com.gdi.bgl.**{*;}
如果不添加,会在安装了app后,使用百度地图的时候有错误,应该是baidu 之类的字被混淆了,然后找不到了:
java.lang.NoClassDefFoundError: com/baidu/platform/comjni/engine/AppEngine
3. PoiSearch 这个类,按照官方文档是有的,但是在2.4.2的api中,已经找不到了。改用MKSearch类。
使用方法如下:
private BMapManager mapManager = null;
private MKSearch mkSearch = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mapManager = new BMapManager(getApplication());
mkSearch = new MKSearch();
mkSearch.init(mapManager, new MySearchListener());
mkSearch.poiSearchNearBy("美食", new GeoPoint((int)(39.99537*1E6), (int)(116.311878*1E6)), 2000);
}
public class MySearchListener implements MKSearchListener {
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiDetailSearchResult(int arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiResult(MKPoiResult mkPoiResult, int type, int error) {
// TODO Auto-generated method stub
if(error !=0 || mkPoiResult == null) {
Toast.makeText(MainActivity.this, "抱歉,未找到结果", Toast.LENGTH_LONG).show();
return;
}
//将Poi结果显示到地图上
PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this,mapView );
poiOverlay.setData(mkPoiResult.getAllPoi());
mapView.getOverlays().clear();
mapView.getOverlays().add(poiOverlay);
mapView.refresh();
for(MKPoiInfo mkPoiInfo : mkPoiResult.getAllPoi()) {
if(mkPoiInfo.pt != null) {
mapView.getController().animateTo(mkPoiInfo.pt);
break;
}
}
}
@Override
public void onGetShareUrlResult(MKShareUrlResult arg0, int arg1,
int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
}