zoukankan      html  css  js  c++  java
  • <Android 应用 之路> 百度地图API使用(2)

    简介

    上一篇只是大致的提一下百度地图API的Android SDK的基本内容,然后抄袭一个官网上的Demo,今天看一下百度地图的第一部分,地图类型和基本的显示。

    简单实战

    不同类型地图的显示

    这里写图片描述

        //设置地图类型
        //public static final int MAP_TYPE_NORMAL = 1;  普通地图
        //public static final int MAP_TYPE_SATELLITE = 2; 卫星地图
        //public static final int MAP_TYPE_NONE = 3; 空白地图
        private void setMapType(int type) {
            if (mBaiduMap != null) {
                mBaiduMap.setMapType(type);
            }
        }
    
    • 空白地图

      这里写图片描述

    • 正常地图

      这里写图片描述

    • 卫星地图

      这里写图片描述

    实时交通图和百度城市热力图

        /*
          实时交通图
          false- > 不开启
          true -> 开启
         */
        private void setTrafficMap(boolean enabled) {
            if (mBaiduMap != null) {
                mBaiduMap.setTrafficEnabled(enabled);
            }
        }
    
        /*
         百度城市热力图
         false- > 不开启
         true -> 开启
        */
        private void setHeatMap(boolean enabled) {
            if (mBaiduMap != null) {
                mBaiduMap.setBaiduHeatMapEnabled(enabled);
            }
        }
    • 实时交通图

      这里写图片描述
      (此图是在地图类型为空白地图时显示的)


    • 百度城市交通热力图

      这里写图片描述

    地图控制和手势

    地图控制
    地图Logo
    默认在左下角显示,不可以移除。
    通过mMapView.setLogoPosition(LogoPosition.logoPostionleftBottom);方法,使用枚举类型控制显示的位置,共支持6个显示位置(左下,中下,右下,左上,中上,右上)。
    地图Logo不允许遮挡,可通过mBaiduMap.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);方法可以设置地图边界区域,来避免UI遮挡。
    其中参数paddingLeft、paddingTop、paddingRight、paddingBottom参数表示距离屏幕边框的左、上、右、下边距的距离,单位为屏幕坐标的像素密度。
    指南针
    指南针默认为开启状态,可以关闭显示 。
    比例尺
    比例尺默认为开启状态,可以关闭显示。同时支持设置MaxZoomLevel和minZoomLevel,可通过mMapView.getMapLevel获取当前地图级别下比例尺所表示的距离大小。

    具体的显示位置和内容如下
    这里写图片描述
    备注:指南针旋转地图的时候才会出现,一开始加载的时候是不会出现的

    地图平移

    制是否启用或禁用平移的功能,默认开启。如果启用,则用户可以平移地图
    地图缩放
    控制是否启用或禁用缩放手势,默认开启。如果启用,用户可以双指点击或缩放地图视图。
    地图俯视(3D)
    控制是否启用或禁用俯视(3D)功能,默认开启。如果启用,则用户可使用双指 向下或向上滑动到俯视图。
    地图旋转
    控制是否启用或禁用地图旋转功能,默认开启。如果启用,则用户可使用双指 旋转来旋转地图。
    禁止所有手势
    控制是否一并禁止所有手势,默认关闭。如果启用,所有手势都将被禁用。

    mUiSettings = mBaiduMap.getUiSettings();
    setSizeByBoolean(fabZoom, mUiSettings.isZoomGesturesEnabled());
    setSizeByBoolean(fabZoom, mUiSettings.isZoomGesturesEnabled());
    setSizeByBoolean(fabScroll, mUiSettings.isScrollGesturesEnabled());
    setSizeByBoolean(fabOverlook, mUiSettings.isOverlookingGesturesEnabled());
    setSizeByBoolean(fabRotate, mUiSettings.isRotateGesturesEnabled());
    setSizeByBoolean(fabCompass, mUiSettings.isCompassEnabled());
    
    
    private void setSizeByBoolean(FloatingActionButton fab , boolean bl) {
        if(bl) {
            fab.setButtonSize(FloatingActionButton.SIZE_NORMAL);
        } else {
            fab.setButtonSize(FloatingActionButton.SIZE_MINI);
        }
    }
    
    public void onClick(View view) {
    ...
    case R.id.fab_zoom:
            if (mUiSettings.isZoomGesturesEnabled()) {
                mUiSettings.setZoomGesturesEnabled(false);
                fabZoom.setButtonSize(FloatingActionButton.SIZE_MINI);
            } else {
                mUiSettings.setZoomGesturesEnabled(true);
                fabZoom.setButtonSize(FloatingActionButton.SIZE_NORMAL);
            }
            break;
        case R.id.fab_scroll:
            if (mUiSettings.isScrollGesturesEnabled()) {
                mUiSettings.setScrollGesturesEnabled(false);
                fabScroll.setButtonSize(FloatingActionButton.SIZE_MINI);
            } else {
                mUiSettings.setScrollGesturesEnabled(true);
                fabScroll.setButtonSize(FloatingActionButton.SIZE_NORMAL);
            }
            break;
        case R.id.fab_rotate:
            if (mUiSettings.isRotateGesturesEnabled()) {
                mUiSettings.setRotateGesturesEnabled(false);
                fabRotate.setButtonSize(FloatingActionButton.SIZE_MINI);
            } else {
                mUiSettings.setRotateGesturesEnabled(true);
                fabRotate.setButtonSize(FloatingActionButton.SIZE_NORMAL);
            }
            break;
        case R.id.fab_overlook:
            if (mUiSettings.isOverlookingGesturesEnabled()) {
                mUiSettings.setOverlookingGesturesEnabled(false);
                fabOverlook.setButtonSize(FloatingActionButton.SIZE_MINI);
            } else {
                mUiSettings.setOverlookingGesturesEnabled(true);
                fabOverlook.setButtonSize(FloatingActionButton.SIZE_NORMAL);
            }
            break;
        case R.id.fab_compass:
            if (mUiSettings.isCompassEnabled()) {
                mUiSettings.setCompassEnabled(false);
                fabCompass.setButtonSize(FloatingActionButton.SIZE_MINI);
            } else {
                mUiSettings.setCompassEnabled(true);
                fabCompass.setButtonSize(FloatingActionButton.SIZE_NORMAL);
            }
            break;
    ...
    }


    • 实际结果
      这里写图片描述
      (好像并不能从图里看出什么呵 - - !)

  • 相关阅读:
    关于网购心态
    c++ In STL maps, is it better to use map::insert than []? Stack Overflow
    小工具:sshcopyid_老王的技术手册 ( 我的新博客:http://huoding.com )_百度空间
    djangoqbe
    C++ STL map的使用
    容器find_if函数定义和其第三个参数重载的疑问
    ArchLinux的安装与配置
    使用Grub进行Linux的硬盘安装与修复
    MySQL数据类型简介
    ArchLinux下Alsa的简单配置
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467178.html
Copyright © 2011-2022 走看看