百度地图定位demo

以下是基于百度地图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()));

            }
        }

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值