安卓SDK——百度地图(切换地图类型)

接上百度地图(Hello BaiduMap)

https://blog.csdn.net/nishigesb123/article/details/89640892

依旧?

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/maptype


缩放等级

目前百度地图SDK所提供的地图缩放等级为4-21级(室内图可以缩放至22级),所包含的信息有建筑物、道路、河流、学校、公园等内容。

再复制一次好了~

地图类型或图层显示层级
2D地图4-21
3D地图19-21
卫星图4-20
路况交通图11-21
百度城市热力图11-21
室内图17-22

地图类型

百度地图SDK提供了3种预置的地图类型

  • 普通地图(普通矢量地图)
  • 卫星图
  • 空白地图

BaiduMap 类提供图层类型常量,详细如下:

类型名称说明
MAP_TYPE_NORMAL普通地图(包含3D地图)
MAP_TYPE_SATELLITE卫星图
MAP_TYPE_NONE空白地图

可以利用BaiduMap中的setMapType()方法来设置地图类型


普通地图

基础的道路地图。 显示道路、建筑物、绿地以及河流等重要的自然特征。

设置普通地图的代码如?:

mMapView = (MapView) findViewById(R.id.bmapView);  
mBaiduMap = mMapView.getMap();  
//普通地图 ,mBaiduMap是地图控制器对象
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);  

完整代码如? 

package com.example.firstmapapplication;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;

public class MainActivity extends Activity {
    private MapView mMapView = null;
    private BaiduMap mBaiduMap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取地图控件引用
        mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        //普通地图 ,mBaiduMap是地图控制器对象
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    }
    @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();
    }
}

效果的话....反正默认就长这样呗也看不出啥

卫星地图

显示卫星照片数据。

只需要修改这一行代码的常量即可~

设置卫星地图的代码如?:

//卫星地图   
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);   

效果如?

 

空白地图

无地图瓦片,地图将渲染为空白地图。不加载任何图块,将不会使用流量下载基础地图瓦片图层。支持叠加任何覆盖物。

适用场景:与瓦片图层(tileOverlay)一起使用,节省流量,提升自定义瓦片图下载速度。参考自定义瓦片图相应部分的使用介绍。

还是只需要修改一行代码~

设置空白地图的代码如?:

//空白地图 
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);

效果如?确实是很空白了~


 另外提供了2种常用图层

  • 实时路况图
  • 百度城市热力图

常用图层

实时路况图

全实时路况图全国范围内已支持绝大部分城市实时路况查询,路况图依据实时路况数据渲染。普通地图和卫星地图,均支持叠加实时路况图。

只需要补上一句即可~

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

 普通地图叠加效果如?

卫星地图叠加效果如?

自定义路况图颜色

Android SDK V4.5.0版本起支持路况颜色的自定义。支持对路况图的颜色做修改和取消显示,适用于在屏幕上突出显示拥堵路况的场景。

路况颜色设置方法

setCustomTrafficColor(String severeCongestion,String congestion,String slow,String smooth)

1)参数含义

学会了一个新单词~这是必考的~知道吗!敲黑板

  • String severeCongestion——严重拥堵
  • String congestion——拥堵
  • String slow——缓行
  • String smooth ——畅通

2)颜色格式

#AARRGGBB A:Alpha、R:Red、G:Green、B:Blue;
其中AA为透明度;4个参数必须全部设置,不需要的颜色,透明度AA可以设置为00,即透明不显示。
注意:透明度顺序与个性化地图中的透明度顺序不一致。

示例

mBaiduMap.setTrafficEnabled(true);
mBaiduMap.setCustomTrafficColor("#ffba0101", "#fff33131", "#ffff9e19", "#00000000");
//  对地图状态做更新,否则可能不会触发渲染,造成样式定义无法立即生效。
MapStatusUpdate u = MapStatusUpdateFactory.zoomTo(13);
mBaiduMap.animateMapStatus(u);

百度城市热力图

百度城市热力图是百度基于强大的地理位置大数据,根据实时的人群分布密度和变化趋势,用热力图的形式展现给广大开发者。

百度城市热力图的使用方式和实时路况图类似,只需要简单的接口调用,即可在地图上展现样式丰富的热力图层。

注意:只有在地图层级介于11-20级时,可显示城市热力图。

百度城市热力图开启方法如下:

mMapView = (MapView) findViewById(R.id.bmapView); 
mBaiduMap = mMapView.getMap();  
//开启热力图  
mBaiduMap.setBaiduHeatMapEnabled(true);

效果如?

标注覆盖物

添加Marker

开发者可以根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。开发者通过MarkerOptions类来设置Marker的属性。

绘制Marker的代码如下:

        //定义Maker坐标点
        LatLng point = new LatLng(39.963175, 116.400244);
        //构建Marker图标
        BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(你的图片资源);
        //构建MarkerOption,用于在地图上添加Marker
        OverlayOptions option = new MarkerOptions().position(point).icon(bitmap);
        //在地图上添加Marker,并显示
        mBaiduMap.addOverlay(option);

效果如?: 尺寸太大了orz

 

可能会遇到如?错误

 Caused by: java.lang.IllegalArgumentException: marker's icon can not be null

可能是图片资源的格式不太好~建议使用png格式的图片~
 

更多参考:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/render-map/point

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云无心鸟知还

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值