Android中级篇之百度地图SDK v3.5.0-基础地图[图解百度地图基础教程]

来源:互联网 发布:wrsndm网络什么意思 编辑:程序博客网 时间:2024/05/17 21:45

基础地图[比官方更详细]

  • 简介

    开发者可利用SDK提供的接口,使用百度为您提供的基础地图数据。目前百度地图SDK所提供的地图等级为3-19级,所包含的信息有建筑物、道路、河流、学校、公园等内容。所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。如标注、矢量图形元素(包括:折线、多边形和圆等)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动。

    百度地图SDK为广大开发者提供的基础地图和上面的各种覆盖物元素,具有一定的层级压盖关系,具体如下(从下至上的顺序):

    1、基础底图(包括底图、底图道路、卫星图等);
    2、地形图图层(GroundOverlay);
    3、热力图图层(HeatMap);
    4、实时路况图图层(BaiduMap.setTrafficEnabled(true););
    5、百度城市热力图(BaiduMap.setBaiduHeatMapEnabled(true););
    6、底图标注(指的是底图上面自带的那些POI元素);
    7、几何图形图层(点、折线、弧线、圆、多边形);
    8、标注图层(Marker),文字绘制图层(Text);
    9、指南针图层(当地图发生旋转和视角变化时,默认出现在左上角的指南针);
    10、定位图层(BaiduMap.setMyLocationEnabled(true););
    11、弹出窗图层(InfoWindow);
    12、自定义View(MapView.addView(View););

  • 地图类型

    百度地图Android SDK为您提供了两种类型的地图资源(普通矢量地图和卫星图),开发者可以利用BaiduMap中的mapType()方法来设置地图类型。

  • 普通矢量地图

    首先我们写一个BaseActivity继承ActivityFragmentActivity都行,这里为了后面我们写MapFragmentDemo还是继承FragmentActivity好了:

    /** * Activity基类 */public class BaseActivity extends FragmentActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //在使用SDK各组件之前初始化context信息,传入ApplicationContext        //注意该方法要再setContentView方法之前实现        SDKInitializer.initialize(getApplicationContext());    }}

    BaseActivity

    activity_main.xml布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <com.baidu.mapapi.map.MapView        android:id="@+id/main_bdmap"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:clickable="true"></com.baidu.mapapi.map.MapView></LinearLayout>

    布局

    BaseMapDemo类:

    public class BaseMapDemo extends BaseActivity {    private MapView mMapView;    private BaiduMap mBaiduMap;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        mMapView = (MapView) findViewById(R.id.main_bdmap);        mBaiduMap = mMapView.getMap();        //普通地图        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);    }    @Override    protected void onResume() {        super.onResume();        // activity 恢复时同时恢复地图控件        mMapView.onResume();    }    @Override    protected void onPause() {        super.onPause();        // activity 暂停时同时暂停地图控件        mMapView.onPause();    }    @Override    protected void onDestroy() {        super.onDestroy();        // activity 销毁时同时销毁地图控件        mMapView.onDestroy();    }}

    运行效果图:

    效果图

  • 卫星图

    更改BaseMapDemo类中的代码:

        private void initView() {        mMapView = (MapView) findViewById(R.id.main_bdmap);        mBaiduMap = mMapView.getMap();        //普通地图        //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);        //卫星图        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);    }

    运行效果图:

    卫星图

  • 实时交通图

    当前,全国范围内已支持多个城市实时路况查询,且会陆续开通其他城市。

    在地图上打开实时路况,更改BaseMapDemo类中的代码:

        private void initView() {        mMapView = (MapView) findViewById(R.id.main_bdmap);        mBaiduMap = mMapView.getMap();        //开启实时交通图        mBaiduMap.setTrafficEnabled(true);    }

    运行效果图:

    交通图

  • 百度城市热力图

    百度地图SDK继为广大开发者开放热力图本地绘制能力之后,再次进一步开放百度自有数据的城市热力图层,帮助开发者构建形式更加多样的移动端应用。

    百度城市热力图的性质及使用与实时交通图类似,只需要简单的接口调用,即可在地图上展现样式丰富的百度城市热力图。

    在地图上开启百度城市热力图的核心代码如下:

        private void initView() {        mMapView = (MapView) findViewById(R.id.main_bdmap);        mBaiduMap = mMapView.getMap();        //开启百度城市热力图        mBaiduMap.setBaiduHeatMapEnabled(true);    }

    运行效果图:

    百度城市热力图

0 0
原创粉丝点击