当前位置: 代码迷 >> Android >> 新手!百度mapAPI周围搜索小程序
  详细解决方案

新手!百度mapAPI周围搜索小程序

热度:5   发布时间:2016-04-28 06:31:10.0
新手求助!百度地图API周围搜索小程序。
初学百度地图API,照着官网的教学写了个小程序,但是一到真机上运行就崩溃,不知为何。
我把代码贴出来,还请各位前辈帮我瞧瞧。

package com.example.mymapactivity;
import com.baidu.mapapi.BMapManager;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.PoiOverlay;
import com.baidu.mapapi.search.MKAddrInfo;
import com.baidu.mapapi.search.MKBusLineResult;
import com.baidu.mapapi.search.MKDrivingRouteResult;
import com.baidu.mapapi.search.MKPoiResult;
import com.baidu.mapapi.search.MKSearch;
import com.baidu.mapapi.search.MKSearchListener;
import com.baidu.mapapi.search.MKShareUrlResult;
import com.baidu.mapapi.search.MKSuggestionResult;
import com.baidu.mapapi.search.MKTransitRouteResult;
import com.baidu.mapapi.search.MKWalkingRouteResult;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

private MapView mapView;
private BMapManager bMapManager; // 加载地图的引擎
private String keyString = "h3ba35N3WTTPb3AaPMeBZomx";
private MKSearch mkSearch;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

bMapManager = new BMapManager(MainActivity.this);

bMapManager.init(keyString, new MKGeneralListener() {
@Override
public void onGetPermissionState(int arg0) {
// TODO Auto-generated method stub
if (arg0 == 300) {
Toast.makeText(MainActivity.this, "输入的KEY错误",
Toast.LENGTH_LONG).show();
}
}
@Override
public void onGetNetworkState(int arg0) {
// TODO Auto-generated method stub
if (arg0 == 300) {
Toast.makeText(MainActivity.this, "输入的KEY错误",
Toast.LENGTH_LONG).show();
}
}
});

setContentView(R.layout.activity_main);

mapView = (MapView) this.findViewById(R.id.bmapsView);
mapView.getController().enableClick(true);
        mapView.getController().setZoom(12);

        mkSearch = new MKSearch();
mkSearch.init(bMapManager, new MySearchListener());
mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000);
// 第一个参数是查询关键字,第二个是查询中心点,第三个事查询半径

//mapView.setBuiltInZoomControls(true);
}
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 res, int type, int error) {
if ( error == MKEvent.ERROR_RESULT_NOT_FOUND){
Toast.makeText(MainActivity.this, "抱歉,未找到结果",Toast.LENGTH_LONG).show();
return ;
        }
        else if (error != 0 || res == null) {
Toast.makeText(MainActivity.this, "搜索出错啦..", Toast.LENGTH_LONG).show();
return;
}
// 将poi结果显示到地图上
PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView);
poiOverlay.setData(res.getAllPoi());
mapView.getOverlays().clear();
mapView.getOverlays().add(poiOverlay);
mapView.refresh();
}
@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
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if (bMapManager != null) {