使用百度地图进行android开发

来源:互联网 发布:杭州java培训机构排名 编辑:程序博客网 时间:2024/06/07 10:38

百度定位

修改AndroidManifest.xml

<meta-data  android:name="com.baidu.lbsapi.API_KEY"  android:value="密钥"/><service android:name="com.baidu.location.f" android:enabled="true"  android:process=":remote"></service>

确定自己的经纬度

public LocationClient mLocationClient;mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener(new LocationListener());private void requestLocation() {    //initLocation();    mLocationClient.start();}public class MyLocationListener implements BDLocationListener{  @Override  public void onReceiveLocation(BDLocation location){    //自行发挥    //location.getLatitude();    //location.getLongitude();  }}

实时更新位置信息、定位模式、看得懂的位置信息

private void initLocation(){    LocationClientOption option = new LocationClientOption();    //设置每隔5秒更新一次    option.setScanSpan(5000);    //设置定位模式为只使用GPS定位。另外两种Hight_Accuracy和Battery_Saving    option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);         //设置看得懂的位置信息  在MyLocationListener中可以获得其他位置信息,如省市街道等。    option.setIsNeedAddress(true);    mLocationClient.setLocOption(option);}@Overrideprotected void onDestroy() {    super.onDestroy();    mLocationClient.stop();     //停止定位    // mapView.onDestroy();    // baiduMap.setMyLocationEnabled(false);}

使用百度地图

显示地图
<com.baidu.mapapi.map.MapView  android:id="@+id/bmapView"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:clickable="true" />
SDKInitiaLizer.initialize(getApplicationContext());mapView = (MapView)findViewById(R.id.bmapView);@Override protected void onResume() {     super.onResume();     mapView.onResume(); } @Override protected void onPause() {     super.onPause();     mapView.onPause(); } @Override protected void onDestroy() {    //  super.onDestroy();    //  mLocationClient.stop();     //停止定位     mapView.onDestroy();    //  baiduMap.setMyLocationEnabled(false); }
移动到我的位置

private boolean isFirstLocate = true;

//地图总控制器
BaiduMap baiduMap = mapView.getMap();
baiduMap.setMyLocationEnabled(true);

private void navigateTo(BDLocation location) {
if (isFirstLocate) {

    //定位到经纬度    LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());    MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);    baiduMap.animateMapStatus(update);    //缩放    update = MapStatusUpdateFactory.zoomTo(16f);    baiduMap.animateMapStatus(update);    isFirstLocate = false;}//让“我”显示在地图上MyLocationData.Builder locationBuilder = new MyLocationData.        Builder();locationBuilder.latitude(location.getLatitude());locationBuilder.longitude(location.getLongitude());MyLocationData locationData = locationBuilder.build();baiduMap.setMyLocationData(locationData);

}

public class MyLocationListener implements BDLocationListener {

@Overridepublic void onReceiveLocation(BDLocation location) {    if (location.getLocType() == BDLocation.TypeGpsLocation            || location.getLocType() == BDLocation.TypeNetWorkLocation) {        navigateTo(location);    }}

}

@Override
protected void onDestroy() {
super.onDestroy();
// mLocationClient.stop();
// mapView.onDestroy();
baiduMap.setMyLocationEnabled(false);
}

“`

0 0