定位1

来源:互联网 发布:python 类的使用 编辑:程序博客网 时间:2024/05/28 16:16
package com.bwei.tt;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.MenuItem;import android.widget.Toast;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;public class MainActivity extends Activity {MapView mMapView = null; private BaiduMap mBaiduMap;private Context context;// boolean useDefaultIcon = false;//定位相关private LocationClient mlocationClient;private MyLocationListener mLocationListener;private boolean isFirstIn=true;private double mLatitude;private double mLongtude;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  //在使用SDK各组件之前初始化context信息,传入ApplicationContext          //注意该方法要再setContentView方法之前实现          SDKInitializer.initialize(getApplicationContext());  setContentView(R.layout.activity_main);//获取地图控件引用          mMapView = (MapView) findViewById(R.id.bmapView);          mBaiduMap = mMapView.getMap();        this.context=this;        //初始化定位        initLocation();//         }private void initLocation() {// TODO Auto-generated method stub  mlocationClient=new LocationClient(this);  mLocationListener=new MyLocationListener();  mlocationClient.registerLocationListener(mLocationListener);    LocationClientOption option=new LocationClientOption();  option.setCoorType("bd09ll");  option.setIsNeedAddress(true);  option.setOpenGps(true);  option.setScanSpan(1000);    mlocationClient.setLocOption(option);}  @Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();//开启定位mBaiduMap.setMyLocationEnabled(true);if(!mlocationClient.isStarted())mlocationClient.start();}  @Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();//停止定位mBaiduMap.setMyLocationEnabled(false);mlocationClient.stop();}@Override      protected void onDestroy() {          super.onDestroy();          //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理          mMapView.onDestroy();      }      @Override      protected void onResume() {          super.onResume();          //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理          mMapView.onResume();          }      @Override      protected void onPause() {          super.onPause();          //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理          mMapView.onPause();          }      @Override    public boolean onOptionsItemSelected(MenuItem item) {    // TODO Auto-generated method stub    switch (item.getItemId()) {case R.id.id_map_location:centerLocation();break;default:break;}    return super.onOptionsItemSelected(item);    }    ///定位我的位置    private void centerLocation() {// TODO Auto-generated method stub    LatLng latlng=new LatLng(mLatitude, mLongtude);MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latlng);mBaiduMap.animateMapStatus(msu);}private class MyLocationListener implements BDLocationListener{@Overridepublic void onReceiveLocation(BDLocation location) {// TODO Auto-generated method stubMyLocationData data=new MyLocationData.Builder()//.accuracy(location.getRadius())//.latitude(location.getLatitude())//.longitude(location.getLongitude())//.build();mBaiduMap.setMyLocationData(data);mLatitude=location.getLatitude();mLongtude=location.getLongitude();//MyLocationConfiguration config=new MyLocationConfiguration(LocationMode.NORMAL, arg1, arg2);if(isFirstIn){LatLng latlng=new LatLng(location.getLatitude(), location.getLongitude());MapStatusUpdate msu=MapStatusUpdateFactory.newLatLng(latlng);mBaiduMap.animateMapStatus(msu);isFirstIn=false;Toast.makeText(context, location.getAddrStr(), Toast.LENGTH_SHORT).show();}}        }}

0 0
原创粉丝点击