• 在地图上显示当前的位置


      1 package com.aihunqin.crazy;
      2 
      3 import android.app.Activity;
      4 import android.os.Bundle;
      5 import android.view.View;
      6 import android.view.View.OnClickListener;
      7 import android.widget.TextView;
      8 
      9 import com.baidu.location.BDLocation;
     10 import com.baidu.location.BDLocationListener;
     11 import com.baidu.location.LocationClient;
     12 import com.baidu.location.LocationClientOption;
     13 import com.baidu.location.LocationClientOption.LocationMode;
     14 import com.baidu.mapapi.SDKInitializer;
     15 import com.baidu.mapapi.map.BaiduMap;
     16 import com.baidu.mapapi.map.BitmapDescriptor;
     17 import com.baidu.mapapi.map.BitmapDescriptorFactory;
     18 import com.baidu.mapapi.map.MapStatusUpdate;
     19 import com.baidu.mapapi.map.MapStatusUpdateFactory;
     20 import com.baidu.mapapi.map.MapView;
     21 import com.baidu.mapapi.map.MarkerOptions;
     22 import com.baidu.mapapi.map.OverlayOptions;
     23 import com.baidu.mapapi.model.LatLng;
     24 import com.baidu.mapapi.search.route.DrivingRoutePlanOption;
     25 import com.baidu.mapapi.search.route.DrivingRouteResult;
     26 import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;
     27 import com.baidu.mapapi.search.route.PlanNode;
     28 import com.baidu.mapapi.search.route.RoutePlanSearch;
     29 import com.baidu.mapapi.search.route.TransitRouteResult;
     30 import com.baidu.mapapi.search.route.WalkingRouteResult;
     31 import com.example.aihunqin.R;
     32 
     33 public class WenhongLocation extends Activity {
     34     BaiduMap mBaiduMap = null;
     35     MapView mMapView = null;
     36     public LocationClient mLocationClient;
     37     public MyLocationListener mMyLocationListener;
     38     public TextView mLocationResult, back;
     39 
     40     @Override
     41     protected void onCreate(Bundle savedInstanceState) {
     42 
     43         super.onCreate(savedInstanceState);
     44         SDKInitializer.initialize(getApplicationContext());
     45         setContentView(R.layout.layout_wenhonglocation);
     46 
     47         back = (TextView) findViewById(R.id.back);
     48         back.setVisibility(View.VISIBLE);
     49         back.setOnClickListener(new OnClickListener() {
     50 
     51             @Override
     52             public void onClick(View v) {
     53                 finish();
     54             }
     55         });
     56 
     57         mMapView = (MapView) findViewById(R.id.bmapView);
     58         mBaiduMap = mMapView.getMap();
     59 
     60         mLocationClient = new LocationClient(getApplicationContext());
     61         mMyLocationListener = new MyLocationListener();
     62         mLocationClient.registerLocationListener(mMyLocationListener);
     63         InitLocation();
     64         mLocationClient.start();
     65 
     66     }
     67 
     68     /**
     69      * 实现定位回调监听
     70      * 
     71      * @author Alex
     72      * 
     73      */
     74     public class MyLocationListener implements BDLocationListener {
     75 
     76         @Override
     77         public void onReceiveLocation(BDLocation location) {
     78             // Receive Location
     79             StringBuffer sb = new StringBuffer(256);
     80             sb.append("time:");
     81             sb.append(location.getTime());
     82             sb.append("
    error code:");
     83             sb.append(location.getLocType());
     84             sb.append("
    latitude:");
     85             sb.append(location.getLatitude());
     86             sb.append("
    lontitude:");
     87             sb.append(location.getLongitude());
     88             sb.append("
    radius:");
     89             sb.append(location.getRadius());
     90             if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
     91                 sb.append("
    addr:");
     92                 sb.append(location.getAddrStr());
     93                 // 运营商信息
     94                 sb.append("
    operationers:");
     95                 sb.append(location.getOperators());
     96             }
     97 
     98             setMarker(location.getLatitude(), location.getLongitude());
     99             // logMsg(sb.toString());
    100         }
    101     }
    102 
    103     void setMarker(double lat, double lng) {
    104         // 定义Markker坐标点
    105         LatLng point = new LatLng(lat, lng);
    106         // 构建Marker图标
    107         BitmapDescriptor bitmap = BitmapDescriptorFactory
    108                 .fromResource(R.drawable.startpoint);
    109         // 构建MarkerOption,用于在地图上添加Marker
    110         OverlayOptions option = new MarkerOptions().position(point)
    111                 .icon(bitmap);
    112         // 在地图上添加Marker,并显示
    113         mBaiduMap.addOverlay(option);
    114 
    115         MapStatusUpdate mapstatusupdate = MapStatusUpdateFactory
    116                 .newLatLng(point);
    117 
    118         mBaiduMap.setMapStatus(mapstatusupdate);
    119 
    120         // setRoutePlan(point);
    121     }
    122 
    123     void setRoutePlan(LatLng point) {
    124         // 驾车线路规划
    125         RoutePlanSearch mSearch = RoutePlanSearch.newInstance();
    126         OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
    127 
    128             @Override
    129             public void onGetWalkingRouteResult(WalkingRouteResult arg0) {
    130                 // 获取步行路线规划结果
    131             }
    132 
    133             @Override
    134             public void onGetTransitRouteResult(TransitRouteResult arg0) {
    135                 // 获取公交换乘路径规划结果
    136             }
    137 
    138             @Override
    139             public void onGetDrivingRouteResult(DrivingRouteResult arg0) {
    140                 // 获取驾车路线规划结果
    141             }
    142         };
    143         // 设置驾车线路规划检索监听者
    144         mSearch.setOnGetRoutePlanResultListener(listener);
    145         // 准备检索起、终点信息
    146         PlanNode stNode = PlanNode.withLocation(point);
    147         LatLng endpoint = new LatLng(121.473605, 31.232176);
    148         PlanNode enNode = PlanNode.withLocation(endpoint);
    149         mSearch.drivingSearch((new DrivingRoutePlanOption()).from(stNode).to(
    150                 enNode));
    151     }
    152 
    153     /**
    154      * 显示请求你字符串
    155      * 
    156      * @param str
    157      */
    158     public void logMsg(String str) {
    159         try {
    160             if (mLocationResult != null)
    161                 mLocationResult.setText(str);
    162         } catch (Exception e) {
    163             e.printStackTrace();
    164         }
    165     }
    166 
    167     private void InitLocation() {
    168         LocationClientOption option = new LocationClientOption();
    169         option.setLocationMode(LocationMode.Battery_Saving);// 设置定位模式
    170         option.setCoorType("bd09ll");
    171         option.setIsNeedAddress(true);
    172         mLocationClient.setLocOption(option);
    173     }
    174 }
    View Code
  • 相关阅读:
    Python循环语句
    Python判断语句
    MySQL的基本操作汇总
    Python函数、类
    Python字典、集合
    Python列表、元组
    python数据类型--数字、字符串
    Python基础认识
    搭建Python独立虚拟环境
    Python包管理工具
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3885159.html
Copyright © 2020-2023  润新知