百度地图
好久不曾写代码 突然写了一些定位 搞了好几天 终于出来了 先申明 我还是编程小白 不过大家可以随便看看
写得不是很工整
需要转发
public class MainActivity extends AppCompatActivity { // BottomNavigationBar bottomNavigationBar; public MapView mMapView; public BaiduMap baiduMap; double mCurrentLantitude= 0.0; double mCurrentLongitude= 0.0; // 定位相关声明 public LocationClient locationClient = null; boolean isFirstLoc = true;// 是否首次定位 @Override protected 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); BDLocationListener myListener = new BDLocationListener() { @Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) return; MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(10).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); baiduMap.setMyLocationData(locData); mCurrentLantitude = location.getLatitude(); mCurrentLongitude = location.getLongitude(); //设置定位数据 // baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16); //设置地图中心点以及缩放级别 // MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll); baiduMap.animateMapStatus(u); // isFirstLoc = false; } } }; baiduMap = mMapView.getMap(); //开启定位图层 baiduMap.setMyLocationEnabled(true); locationClient = new LocationClient(getApplicationContext()); // 实例化LocationClient类 locationClient.registerLocationListener(myListener); // 注册监听函数 this.setLocationOption(); //设置定位参数 locationClient.start(); // 开始定位 } @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(); } private void setLocationOption() { LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); // 打开GPS option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式 option.setCoorType("bd09ll"); // 返回的定位结果是百度经纬度,默认值gcj02 option.setScanSpan(5000); // 设置发起定位请求的间隔时间为5000ms option.setIsNeedAddress(true); // 返回的定位结果包含地址信息 option.setNeedDeviceDirect(true); // 返回的定位结果包含手机机头的方向 locationClient.setLocOption(option); }工程下载地址:http://download.csdn.net/detail/qq_35224776/9723692
百度地图最新SDK撰写
可以加群220523801欢迎一起讨论