栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

移动互联网开发技术教学网站项目研究第五篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

移动互联网开发技术教学网站项目研究第五篇

2021@SDUSC

显示地图
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地图必须放在布局初始化之前
        //地图初始化方法中任选一种
        SDKInitializer.initialize(getApplicationContext());

        setContentView(R.layout.activity_main);

        //获取定位权限后初始化
        showContacts();

    }

    private void init(){
        //获取地图控件
        mMapView = findViewById(R.id.themapView);
        //得到地图
        mBaiduMap = mMapView.getMap();

        //开启定位图层
        mBaiduMap.setMyLocationEnabled(true);

        //绑定按钮监听事件
        findViewById(R.id.btn_library).setOnClickListener(this);
        findViewById(R.id.btn_tech).setOnClickListener(this);
        findViewById(R.id.btn_dining).setOnClickListener(this);

        //设置地图标点
        //创建OverlayOptions的集合
        List options = new ArrayList();
        //构造坐标数据
        //经纬度可以通过百度地图官网进行搜索获得
        LatLng p_library = new LatLng(36.674945, 117.144168);
        LatLng p_teach = new LatLng(36.673717, 117.145928);
        LatLng p_dining = new LatLng(36.672553, 117.147145);

        //自定义Marker的图标
        BitmapDescriptor bitmap = BitmapDescriptorFactory
                .fromResource(R.mipmap.icon_mark);
        //创建OverlayOptions属性
        OverlayOptions option1 =  new MarkerOptions()
                .position(p_library)
                .icon(bitmap);
        OverlayOptions option2 =  new MarkerOptions()
                .position(p_teach)
                .icon(bitmap);
        OverlayOptions option3 =  new MarkerOptions()
                .position(p_dining)
                .icon(bitmap);
        //将OverlayOptions添加到list
        options.add(option1);
        options.add(option2);
        options.add(option3);

        //设置mark覆盖物点击监听器
       // mBaiduMap.setOnMarkerClickListener(new MyMarkerClickListener());
        //在地图上批量添加
        mBaiduMap.addOverlays(options);

        //定位初始化
        mLocationClient = new LocationClient(this);

        //通过LocationClientOption设置LocationClient相关参数
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true); // 打开gps
        option.setCoorType("bd09ll"); // 设置坐标类型
        option.setScanSpan(5000);//五秒返回一次位置
        // 可选,设置地址信息
        option.setIsNeedAddress(true);
        //可选,设置是否需要地址描述
        option.setIsNeedLocationDescribe(true);

        //设置locationClientOption
        mLocationClient.setLocOption(option);

        //注册LocationListener监听器
        MyLocationListener myLocationListener = new MyLocationListener();
        mLocationClient.registerLocationListener(myLocationListener);
        //开启地图定位图层
        mLocationClient.start();
        

    }
     //实现地图生命周期管理
    @Override
    protected void onResume() {
        super.onResume();
       
        mMapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
       
        mMapView.onPause();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
       
        mMapView.onDestroy();
    }

SDKInitializer.initialize(getApplicationContext());是显示地图的方法。后面有一个获取定位权限的方法。
MapView是显示地图视图的类,责从服务端获取地图数据。它将会捕捉屏幕触控手势事件,可以进行放大和缩小。
List options是要创建一个放置软件园校区标志性建筑的集合,OverlayOptions类是地图覆盖物选型基类。MarkerOptions类定义地图 Marker 覆盖物基类,position(LatLng p_library)可设置覆盖物的位置坐标,icons(bitmap)
设置覆盖物的图标.
LatLng p_library = new LatLng(36.674945, 117.144168);中LatLng类是地理坐标基本数据结构,构造方法中前者是经度,后者是纬度,这些数据为作者通过百度地图官网进行搜索获得。
Bitmap 代表一个位图,BitmapDescriptor是Bitmap 描述信息类,BitmapDescriptorFactorybitmap 描述信息工厂类fromResource(R.mipmap.icon_mark)
根据资源Id创建不适配设备像素密度的Bitmap描述信息。 mBaiduMap.addOverlays(options);为获取的地图添加刚刚根据纬度得到的地图覆盖物。
LocationClient定位服务的客户端,宿主程序在客户端声明此类,并调用,仅可以在在主线程中启动。LocationClientOption配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等。setOpenGps(true)设置打开gps进行定位;setCoorType("bd09ll")设置坐标类型,设置的参数为返回百度经纬度坐标系;setScanSpan(5000);设置扫描间隔为5秒,单位是毫秒 当<1000时,定时定位无效;setIsNeedAddress(true);设置返回地址信息;setIsNeedLocationDescribe(true);设置返回位置语义化信息。
后面为定位服务添加监听器。registerLocationListener(myLocationListener);为注册定位监听函数。start();启动定位sdk。
在activity执行onResume,即在这个活动在应用程序与用户开始可交互的时候调用mMapView. onResume (),将地图唤醒,开始显示地图页面。
在activity执行onPause,即当前活动将要被暂停,上一个活动即将被恢复时调用mMapView. onPause (),将地图暂停。
在activity执行onDestroy,即活动被系统销毁之前调用mMapView.onDestroy()将地图销毁。以上三个方法实现地图的1声明周期管理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号