地图sdk提供了3种预置的地图类型,包括普通地图,卫星图,空白地图。另外提供了2种常用图层实时路况图以及百度城市热力图。
普通地图
卫星地图
空白地图
城市路况图
人口热力图
目前百度地图sdk所提供的地图缩放等级为4-21级(室内图可以缩放至22级),所包含的信息有建筑物、道路、河流、学校、公园等内容。
下面主要介绍如何切换这3种地图类型,以及如何打开实时路况图和添加城市热力图。
百度地图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);
显示的效果如下:
显示卫星照片数据,卫星图只支持缩放到20级。
设置卫星地图的代码如下:
mmapview =(mapview)findviewbyid(r.id.bmapview);mbaidumap = mmapview.getmap();//卫星地图mbaidumap.setmaptype(baidumap.map_type_satellite);
显示的效果如下:
无地图瓦片,地图将渲染为空白地图。不加载任何图块,将不会使用流量下载基础地图瓦片图层。支持叠加任何覆盖物。
适用场景:与瓦片图层(tileoverlay)一起使用,节省流量,提升自定义瓦片图下载速度。参考自定义瓦片图相应部分的使用介绍。
设置空白地图的代码如下:
mmapview =(mapview)findviewbyid(r.id.bmapview);mbaidumap = mmapview.getmap();//空白地图mbaidumap.setmaptype(baidumap.map_type_none);
显示的效果如下:
全实时路况图全国范围内已支持绝大部分城市实时路况查询,路况图依据实时路况数据渲染,每分钟更新一次。普通地图和卫星地图均支持叠加实时路况图。
实时路况图的开启方法如下:
mmapview =(mapview)findviewbyid(r.id.bmapview);mbaidumap = mmapview.getmap();//开启交通图mbaidumap.settrafficenabled(true);
显示的效果如下:
android sdk v4.5.0版本起支持路况颜色的自定义。支持对路况图的颜色做修改和取消显示,适用于在屏幕上突出显示拥堵路况的场景。
1.路况颜色设置方法
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,即透明不显示。
2.示例如下
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);
普通地图叠加热力图显示效果如下
上一篇
下一篇
本篇文章对您是否有帮助?