以下是基于百度地图3.7的一个定位的demo
在集成百度地图时首先要在Application中进行SDK的配置然后在配置文件中进行引用
public class app extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
SDKInitializer.initialize(this);
}
}
application
android:allowBackup=”true”
android:icon=”@drawable/ic_launcher”
android:label=”@string/app_name”
android:name=”.app”
android:theme=”@style/AppTheme”
public class MainActivity extends Activity {
public MapView mapview;
public BaiduMap bMap;
public LocationClient clicent;
public MyLocationLinstener locationlistener=new MyLocationLinstener();
public boolean istrue=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 首先初始化SDK
// SDKInitializer.initialize(this);
setContentView(R.layout.activity_main);
//初始化地图
mapview=(MapView)findViewById(R.id.map);
bMap=mapview.getMap();
//定位开启
bMap.setMyLocationEnabled(true);
//定位初始化
clicent=new LocationClient(this);
//定位设置监听
clicent.registerLocationListener(locationlistener);
//LocationClicentOption设置定位的方式
LocationClientOption option=new LocationClientOption();
option.setCoorType("bd0911");
option.setScanSpan(1000);
option.setOpenGps(true);
//把option的操作设置到定位中
clicent.setLocOption(option);
//配置定位地图现实的方式 现在是罗盘形式展示
bMap.setMyLocationConfigeration(new MyLocationConfiguration(com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.COMPASS,true,null));
//开启定位
clicent.start();
}
public class MyLocationLinstener implements BDLocationListener{
@Override
public void onReceiveLocation(BDLocation location) {
// TODO Auto-generated method stub
if(mapview==null||location==null){
return ;
}
//定位数据
MyLocationData data=new MyLocationData.Builder().accuracy(location.getRadius())
.direction(100)
.latitude(location.getLatitude())
.longitude(location.getLongitude())
.build();
//把定位的数据加到百度地图上
bMap.setMyLocationData(data);
if(istrue){
istrue=false;
//地图的状态
MapStatus.Builder status=new MapStatus.Builder();
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
//设置缩放的等级和中心点
status.zoom(19).target(ll);
//地图改变的是的状态的动画
bMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(status.build()));
}
}
}
}