破天丿彡 发表于 2019-3-14 16:32

给Android开发开拓封装百度地图/等SDK的思想与参考源代码

本帖最后由 破天丿彡 于 2019-3-14 17:29 编辑

免得看糊涂,先来结构图
对你有用的话请给波热心值

使用的截图
/**
* 创建日期:2019-03-05
* 创建人:zc
* 此页面描述:使用百度地图的基础activity
*/

public abstract class BaseBaiDuMapActivity extends BaseActivity {
    private MapView mMapView = null;
    public BaiduMap mBaiduMap;

    @Override
    protected void onCreate(@nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      setContentView(getContentViewLayout());
      //初始化百度地图
      mMapView = findViewById(getBaiduMap());
      //设置是否显示缩放控件
      mMapView.showZoomControls(true);

      //获取地图控制器
      mBaiduMap = mMapView.getMap();
      //初始化百度地图设置
      mBaiduMap = BaiduMapUtil.iniBaiDuMao(mBaiduMap);

    }
    protected abstract int getContentViewLayout();
    //百度地图控件的id
    protected abstract int getBaiduMap();

    @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
    protected void onDestroy() {
      super.onDestroy();
      //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
      mMapView.onDestroy();
    }

/**
* 创建日期:2019-03-05
* 创建人:zc
* 此页面描述:在地图上叠加覆盖物/要在上添加自己的业务用此类
*/
public class OverlayOptionsUtil {
    //设置经纬度
    public static LatLnggetCarLatLng(){
      returnnew LatLng(116.401394,39.915156);
    }
    //定义地图中心点
    public static OverlayOptions setMaker(){
      //设置经纬度
      //构建Marker图标
      BitmapDescriptor bitmap ;
      //设置在地图上显示的图标
      if(type==0){
            bitmap =BitmapDescriptorFactory.fromResource(R.mipmap.ico_gray);
      }else{
            bitmap =BitmapDescriptorFactory.fromResource(R.mipmap.ico_boy);
      }

      //构建MarkerOption,用于在地图上添加Marker
      OverlayOptions option = new MarkerOptions()
                .position(getCarLatLng()) //必传参数
                .icon(bitmap) //必传参数
                .draggable(true);
      returnoption;
    }


**
* 创建日期:2019-03-05
* 创建人:zc
* 此页面描述:百度地图控制器
*/
public class BaiduMapUtil {
    /**
   * 百度地图设置
   * @Param mBaiduMap
   * @return
   */
    public staticBaiduMap iniBaiDuMao(BaiduMap mBaiduMap){
      //设置地图类型
      mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
      //设置是否允许定位地图
      mBaiduMap.setMyLocationEnabled(true);
      //设置是否打开交通地图
      mBaiduMap.setTrafficEnabled(true);
      // 设置是否显示室内图, 默认室内图不显示 室内图只有在缩放级别范围才生效,但是在18级之上(包含18级)才会有楼层边条显示。
      mBaiduMap.setIndoorEnable(true);

      //设置地图中心点
      mBaiduMap.addOverlay(
                OverlayOptionsUtil.setMaker());
      //设置地图缩放比例
      float f = mBaiduMap.getMaxZoomLevel();//19.0 最小比例尺

      MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom( 8);//设置缩放比例
      mBaiduMap.animateMapStatus(u);
      returnmBaiduMap;

    }
来个使用的实例代码

public class TestBaiduActivity extends BaseBaiDuMapActivity {
    private int radius;
    private double yuan_lat=0,yuan_lon=0;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      initView();
    }

    @Override
    protected int getContentViewLayout() {
      return R.layout.activity_baidu_map;
    }

    private void getMap( int radius) {
      mBaiduMap.clear();//清除地图上的覆盖物
      //添加所在位置
      mBaiduMap.addOverlay(OverlayOptionsUtil.setMaker());
      //在地图范围添加一个圆圈,传入圆心点的坐标point,填充的颜色,半径(米),还可以设置边框等等
      CircleOptions circle = new CircleOptions().center(OverlayOptionsUtil.getCarLatLng()).fillColor(0x8000c3ff).radius(radius);
      //添加地图范围
      mBaiduMap.addOverlay(circle);

    }

感觉不到风 发表于 2019-3-14 16:56

很好 nb啊印度阿三

wzlacjh 发表于 2019-3-14 17:38

nullable 发表于 2019-3-15 12:59

牛逼。我是被@进来的。protected void onCreate(@nullable Bundle savedInstanceState) {

yzjtian 发表于 2019-3-15 17:03

正在学习android,收藏备用,谢谢!

bdcpc 发表于 2019-4-4 08:51

弄个成品
出来

intel286 发表于 2020-2-21 07:12

我是初次学习android看你的代码非常晕,有没有完整工程文件

zhang19900 发表于 2020-2-22 19:18

好好学习一下
页: [1]
查看完整版本: 给Android开发开拓封装百度地图/等SDK的思想与参考源代码