吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4656|回复: 7
收起左侧

[其他转载] 给Android开发开拓封装百度地图/等SDK的思想与参考源代码

[复制链接]
破天丿彡 发表于 2019-3-14 16:32
本帖最后由 破天丿彡 于 2019-3-14 17:29 编辑

免得看糊涂,先来结构图
对你有用的话请给波热心值
TIM截图20190314115720.png
使用的截图
[Java] 纯文本查看 复制代码
/**
 * 创建日期:2019-03-05
 * 创建人:zc
 * 此页面描述:使用百度地图的基础activity
 */

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

    @Override
    protected void onCreate([url=home.php?mod=space&uid=1043391]@nullable[/url] 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();
    }


[Java] 纯文本查看 复制代码
/**
 * 创建日期:2019-03-05
 * 创建人:zc
 * 此页面描述:在地图上叠加覆盖物/要在上添加自己的业务用此类
 */
public class OverlayOptionsUtil {
    //设置经纬度
    public static LatLng  getCarLatLng(){
        return  new LatLng([font=Microsoft YaHei][color=#000000][size=13.3333px]116.401394,39.915156[/size][/color][/font]);
    }
    //定义地图中心点
    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);
        return  option;
    }


[Java] 纯文本查看 复制代码
**
 * 创建日期:2019-03-05
 * 创建人:zc
 * 此页面描述:百度地图控制器
 */
public class BaiduMapUtil {
    /**
     * 百度地图设置
     * [url=home.php?mod=space&uid=952169]@Param[/url] mBaiduMap
     * @return
     */
    public static  BaiduMap iniBaiDuMao(BaiduMap mBaiduMap){
        //设置地图类型
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        //设置是否允许定位地图
        mBaiduMap.setMyLocationEnabled(true);
        //设置是否打开交通地图
        mBaiduMap.setTrafficEnabled(true);
        // 设置是否显示室内图, 默认室内图不显示 室内图只有在缩放级别[17, 22]范围才生效,但是在18级之上(包含18级)才会有楼层边条显示。
        mBaiduMap.setIndoorEnable(true);

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

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

    }

来个使用的实例代码
[Java] 纯文本查看 复制代码
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);

    }

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zhang19900 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

感觉不到风 发表于 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
好好学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 23:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表