zoukankan      html  css  js  c++  java
  • Android_百度地图基本用法4

      1 /*
      2  *1.定位
      3  *2.自定义图标
      4  *2.三种模式切换:普通模式,罗盘模式,跟随模式
      5  * 
      6  * */
      7 public class MainActivity extends Activity {
      8     MapView mapView;
      9     BaiduMap mBaiduMap;
     10     // 定位相关
     11     private LocationClient mLocationClient;
     12     private MyLocationListener mLocationListener;
     13     private boolean isFirst = true;
     14     // 记录经纬度
     15     private double mLatitude;
     16     private double mLongtitude;
     17     // 自定义位置图标
     18     private BitmapDescriptor mIconLocation;
     19     
     20     private float mCurrentX;
     21     private com.baidu.mapapi.map.MyLocationConfiguration.LocationMode mLocationMode;
     22 
     23     @Override
     24     protected void onCreate(Bundle savedInstanceState) {
     25         super.onCreate(savedInstanceState);
     26         SDKInitializer.initialize(getApplicationContext());
     27         requestWindowFeature(Window.FEATURE_NO_TITLE);
     28         setContentView(R.layout.fragment_main);
     29         mapView = (MapView) findViewById(R.id.bmapView);
     30         mBaiduMap = mapView.getMap();
     31         // 设置地图标尺500m
     32         MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
     33         mBaiduMap.setMapStatus(msu);
     34 
     35         // 初始化定位
     36         mLocationMode = com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.NORMAL;
     37         mLocationClient = new LocationClient(this);
     38         mLocationListener = new MyLocationListener();
     39         mLocationClient.registerLocationListener(mLocationListener);
     40         LocationClientOption option = new LocationClientOption();
     41         option.setCoorType("bd09ll");// 坐标类型
     42         option.setIsNeedAddress(true);
     43         option.setOpenGps(true);
     44         option.setScanSpan(1000);// 每隔1秒请求
     45         mLocationClient.setLocOption(option);
     46 
     47         // 初始化图标
     48         mIconLocation = BitmapDescriptorFactory
     49                 .fromResource(R.drawable.navi_map_gps_locked);
     50         
     51 
     52     }
     53 
     54     public void click(View view) {
     55         switch (view.getId()) {
     56         case R.id.mode_common:
     57             mLocationMode = com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.NORMAL;
     58             break;
     59 
     60         case R.id.mode_follow:
     61             mLocationMode = com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.FOLLOWING;
     62             break;
     63         case R.id.mode_compass:
     64             mLocationMode = com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.COMPASS;
     65             break;
     66 
     67         }
     68     }
     69 
     70     public void but(View view) {
     71         switch (view.getId()) {
     72 
     73         // 定位到我的位置
     74         case R.id.back:
     75             LatLng latLng = new LatLng(mLatitude, mLongtitude);
     76             MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
     77             mBaiduMap.animateMapStatus(msu);
     78 
     79             break;
     80 
     81         }
     82 
     83     }
     84 
     85     @Override
     86     protected void onResume() {
     87 
     88         super.onResume();
     89         mapView.onResume();
     90     }
     91 
     92     @Override
     93     protected void onStart() {
     94 
     95         super.onStart();
     96         // 开启定位
     97         mBaiduMap.setMyLocationEnabled(true);
     98         if (!mLocationClient.isStarted()) {
     99             mLocationClient.start();
    100         }
    101         
    102 
    103     }
    104 
    105     @Override
    106     protected void onStop() {
    107         // TODO Auto-generated method stub
    108         super.onStop();
    109         // 停止定位
    110         mBaiduMap.setMyLocationEnabled(false);
    111         mLocationClient.stop();
    112         
    113 
    114     }
    115 
    116     @Override
    117     protected void onPause() {
    118         // TODO Auto-generated method stub
    119         super.onPause();
    120         mapView.onPause();
    121     }
    122 
    123     @Override
    124     protected void onDestroy() {
    125         // TODO Auto-generated method stub
    126         super.onDestroy();
    127         mapView.onDestroy();
    128     }
    129 
    130     private class MyLocationListener implements BDLocationListener {
    131 
    132         @Override
    133         public void onReceiveLocation(BDLocation arg0) {
    134             // 精度、纬度
    135             MyLocationData data = new MyLocationData.Builder()
    136                     .direction(mCurrentX).accuracy(arg0.getRadius())
    137                     .latitude(arg0.getLatitude())
    138                     .longitude(arg0.getLongitude()).build();
    139 
    140             mBaiduMap.setMyLocationData(data);
    141             // 设置自定义图标
    142             MyLocationConfiguration config = new MyLocationConfiguration(
    143                     mLocationMode, true, mIconLocation);
    144             mBaiduMap.setMyLocationConfigeration(config);
    145             // 更新经纬度
    146             mLatitude = arg0.getLatitude();
    147             mLongtitude = arg0.getLongitude();
    148             // 第一次进入,设置用户当前位置
    149             if (isFirst) {
    150                 LatLng latLng = new LatLng(arg0.getLatitude(),
    151                         arg0.getLongitude());
    152                 MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
    153                 mBaiduMap.animateMapStatus(msu);
    154                 isFirst = false;
    155                 // 显示地址
    156                 Toast.makeText(MainActivity.this, arg0.getAddrStr(), 0).show();
    157 
    158             }
    159 
    160         }
    161 
    162         @Override
    163         public void onConnectHotSpotMessage(String arg0, int arg1) {
    164             // TODO Auto-generated method stub
    165 
    166         }
    167 
    168     }
    169 
    170 }
  • 相关阅读:
    Aurora 数据库支持多达五个跨区域只读副本
    Amazon RDS 的 Oracle 只读副本
    Amazon EC2 密钥对
    DynamoDB 读取请求单位和写入请求单位
    使用 EBS 优化的实例或 10 Gb 网络实例
    启动 LAMP 堆栈 Web 应用程序
    AWS 中的错误重试和指数退避 Error Retries and Exponential Backoff in AWS
    使用 Amazon S3 阻止公有访问
    路由表 Router Table
    使用MySQLAdmin工具查看QPS
  • 原文地址:https://www.cnblogs.com/my334420/p/7112333.html
Copyright © 2011-2022 走看看