首页 > 代码库 > 百度地图和定位
百度地图和定位
1 package com.example.administrator.yunstore; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.widget.TextView; 7 8 import com.baidu.location.BDLocation; 9 import com.baidu.location.BDLocationListener; 10 import com.baidu.location.LocationClient; 11 import com.baidu.location.LocationClientOption; 12 import com.baidu.mapapi.SDKInitializer; 13 import com.baidu.mapapi.map.BaiduMap; 14 import com.baidu.mapapi.map.MapStatusUpdate; 15 import com.baidu.mapapi.map.MapStatusUpdateFactory; 16 import com.baidu.mapapi.map.MapView; 17 import com.baidu.mapapi.map.MyLocationData; 18 import com.baidu.mapapi.model.LatLng; 19 20 public class MapActivity extends Activity { 21 22 private MapView mapView; 23 private BaiduMap myMap; 24 private TextView addressView; 25 //定位相关 26 private LocationClient mLocationClient; 27 private myLocationListener mLocationLisener; 28 private float mCurrentX=0.0f; 29 private boolean isFirstIn = true; 30 31 @Override 32 protected void onCreate(Bundle savedInstanceState) { 33 super.onCreate(savedInstanceState); 34 SDKInitializer.initialize(getApplicationContext()); 35 setContentView(R.layout.activity_map); 36 37 initView(); 38 //初始化定位 39 initLocation(); 40 41 } 42 43 private void initLocation() { 44 mLocationClient = new LocationClient(this); 45 mLocationLisener = new myLocationListener(); 46 mLocationClient.registerLocationListener(mLocationLisener); 47 LocationClientOption option = new LocationClientOption(); 48 //设置坐标类型 49 option.setCoorType("bd09ll"); 50 //设置打开gps 51 option.setOpenGps(true); 52 //设置获取地址 53 option.setIsNeedAddress(true); 54 //请求时间 55 option.setScanSpan(1000); 56 //执行操作 57 mLocationClient.setLocOption(option); 58 } 59 60 private void initView() { 61 mapView = (MapView) findViewById(R.id.mapView); 62 addressView= (TextView) findViewById(R.id.address); 63 myMap = mapView.getMap(); 64 //设置地图的状态 15.0f显示距离为500m 65 MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f); 66 myMap.setMapStatus(msu); 67 } 68 69 70 //定位监听 71 private class myLocationListener implements BDLocationListener { 72 73 @Override 74 //定位成功以后的回调 75 public void onReceiveLocation(BDLocation location) { 76 MyLocationData data = http://www.mamicode.com/new MyLocationData.Builder()// 77 .direction(mCurrentX)// 78 .accuracy(location.getRadius())// 79 .latitude(location.getLatitude())// 80 .longitude(location.getLongitude())// 81 .build(); 82 myMap.setMyLocationData(data); 83 84 if (isFirstIn) { 85 LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude()); 86 Log.e("",location.getAddrStr()+" "+location.getLatitude()+" "+location.getLongitude()); 87 MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng); 88 myMap.animateMapStatus(msu); 89 isFirstIn = false; 90 addressView.setText("你现在所在的位置是:"+location.getAddrStr()); 91 } 92 93 } 94 } 95 @Override 96 protected void onStart() { 97 super.onStart(); 98 //开启定位 99 myMap.setMyLocationEnabled(true);100 if(!mLocationClient.isStarted()){101 mLocationClient.start();102 103 }104 }105 106 @Override107 protected void onStop() {108 super.onStop();109 //停止定位110 myMap.setMyLocationEnabled(false);111 mLocationClient.stop();112 }113 114 @Override115 protected void onDestroy() {116 super.onDestroy();117 mapView.onDestroy();118 }119 120 @Override121 protected void onResume() {122 super.onResume();123 mapView.onResume();124 }125 126 @Override127 protected void onPause() {128 super.onPause();129 mapView.onPause();130 }131 }
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:orientation="vertical"> 5 6 <com.baidu.mapapi.map.MapView 7 android:id="@+id/mapView" 8 android:layout_width="fill_parent" 9 android:layout_height="300dp"10 android:clickable="true" />11 <TextView12 android:id="@+id/address"13 android:layout_width="match_parent"14 android:layout_height="match_parent"15 android:text="其他控件"16 android:textSize="20sp"17 android:background="#00ff00"/>18 </LinearLayout>
百度地图和定位
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。