百度地图系列03——简单地图定位

百度地图系列03——简单地图定位

关于加载地图,可参考前面一章http://blog.csdn.net/u013293125/article/details/49951257,基本代码没变

1、首先加入jar包
这里写图片描述
其它与第一章一样,基本没变。

2、代码部分,在MainActivity里:

package com.example.maptest003;


import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.LocationData;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationOverlay;
import com.baidu.platform.comapi.basestruct.GeoPoint;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    private MapView mMapView = null;
    private BMapManager bMapManager; 
    private MapController mMapController;
    //定位相关
    LocationClient mLocationClient;
    LocationData locData = null;
    public MyLocationListenner myListener = new MyLocationListenner();
    //定位图层
//  locationOverlay myLocationOverlay = null;
    MyLocationOverlay locOverlay;

//  boolean isRequest = false;//是否手动触发请求定位
    boolean isFirstLoc = true;//是否首次定位
    boolean isLocationClientStop = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        bMapManager = new BMapManager(getApplication());
        //第一个参数是你申请的KEY值,稍后介绍,这个初始化必须写在setContentView
        //前面
        bMapManager.init("utOV22bi9PAzd6h3KzoSfD8A", null);
        setContentView(R.layout.activity_main);
        //找到地图控件
        mMapView = (MapView) findViewById(R.id.maplistv);
        //不用以下方法也可以加载出地图
        mMapController = mMapView.getController();
        mMapController.enableClick(true);   //设置地图是否响应点击事件
        mMapController.setZoom(14);   //设置地图缩放级别
        mMapView.setBuiltInZoomControls(true);

        //定位初始化
        mLocationClient = new LocationClient( this );
        locData = new LocationData();
        mLocationClient.registerLocationListener( myListener );
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true);//打开gps
        option.setCoorType("bd09ll");     //设置坐标类型,这里是09LL
        option.setScanSpan(5000);
        mLocationClient.setLocOption(option);
        mLocationClient.start();

        locOverlay = new MyLocationOverlay(mMapView);
        locOverlay.setData(locData);

        mMapView.getOverlays().add(locOverlay);
        locOverlay.enableCompass();
        //修改定位数据后刷新图层生效
        mMapView.refresh();
        //显示内置缩放控件
        //114.27071,30.444669
//        double lat = 30.444669;
//        double lng = 114.27071;
//        GeoPoint point = new GeoPoint((int)(lat*1e6),(int)(lng*1e6));
//        mMapController.setCenter(point);


    }
public class MyLocationListenner implements BDLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location) {
            if (location == null || isLocationClientStop)
                return ;
            locData.latitude = location.getLatitude();
            locData.longitude = location.getLongitude();
            //如果不显示定位精度圈,将accuracy赋值为0即可
            locData.accuracy = location.getRadius();
            locData.direction = location.getDerect();
            //更新定位数据

            locOverlay.setData(locData);
            //更新图层数据执行刷新后生效
            mMapView.refresh();
            //是手动触发请求或首次定位时,移动到定位点
            if (isFirstLoc){
                //移动地图到定位点
                mMapController.animateTo(new GeoPoint((int)(locData.latitude* 1e6), (int)(locData.longitude *  1e6)));
//                isRequest = false;
            }
            //首次定位完成
            isFirstLoc = false;
        }

        public void onReceivePoi(BDLocation poiLocation) {
            if (poiLocation == null){
                return ;
            }
        }
    }
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        mMapView.destroy();
    }
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        mMapView.onPause();
    }
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        mMapView.onResume();
    }
}

运行结果:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值