现在的位置: 首页 > 综合 > 正文

新版百度地图API基本操作

2016年12月10日 ⁄ 综合 ⁄ 共 1768字 ⁄ 字号 评论关闭

在自己的项目中显示了一个基础的地图MapView控件之后  我们可以对该View控件进行一些操作

 

操作地图 :

 

  • 初始化SDK以及找到控件

SDKInitializer.initialize(getApplicationContext());

MapView  mMapView = (MapView) findViewById(R.id.bmapView);

  • 得到BaiduMap对象 官方文档描述的是 : 该类是地图对象的操作方法与接口

BaiduMap  mBaiduMap = mMapView.getMap();

通过View控件的getMap方法得到BaiduMap对象

  • 通过BaiduMap对象设置地图的一些属性,比如:

    // 定义中心点(哈尔滨中央大街的经纬)
   LatLng cenpt = new LatLng(45.784,126.624);   //①
   // 定义地图状态

   MapStatus mMapStatus = new MapStatus.Builder().target(cenpt).zoom(18).build();  //②
   // 定义地图状态将要发生的变化
   MapStatusUpdate mMapStatusUpdate =

                            MapStatusUpdateFactory.newMapStatus(mMapStatus);   //③
   // BaiduMap对象改变地图状态

   mBaiduMap.setMapStatus(mMapStatusUpdate);    //④

LatLng类只有两个属性 用来描述地理坐标基本数据结构(纬度,经度)

MapStatus.Builder是地图状态构造器 target设置地图中心点 zoom设置地图缩放级别

   build()方法生成一个MapStatus地图状态对象

MapStatusUpdateFactory,生成地图状态将要发生的变化描述 newMapStatus()方法设置地图新状态
MapStatus就是地图状态对象  MapStatusUpdate对象是生成的地图变化描述

④BaiduMap对象用setMapStatus()方法改变地图状态(参数的含义是根据描述去改变)

 

 

其实听起来有些难理解  通过面向对象的思维 我这样理解 :

地图要改变-->地图操作者去改变-->按照客户要求(可能有新的中心点,缩放度)生成一个地图状态

     -->地图操作者看不懂状态需要人描述一下状态的含义-->地图操作者根据描述去开始操作地图

对应的类的关系 :

MapView要改变-->用BaiduMap去操作-->根据MapStatus的状态改变-->

     BaiduMap看不懂状态MapStatus  需要MapStatusUpdate去描述-->BaiduMap通过描述去改变-->

      MapView改变

 

 

  • BaiduMap可以设置很多关于MapView的属性
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); //卫星地图 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
 

//开启交通图   mBaiduMap.setTrafficEnabled(true);

 

//定义Maker坐标点
LatLng point = new LatLng(39.963175116.400244); //构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka); //构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions().position(point).icon(bitmap); //在地图上添加Marker,并显示 mBaiduMap.addOverlay(option);



文章转自http://blog.sina.com.cn/s/blog_3bcd2c870102uy88.html

抱歉!评论已关闭.