更新时间:2020年06月23日
hello baidumap
在ui代码中添加地图页面组件(bmfmapwidget):
bmfmapoptions构造,bmfmapoptions包含了创建地图所需要的各种状态参数
bmfmapoptions mapoptions = bmfmapoptions( center: bmfcoordinate(39.917215, 116.380341), zoomlevel: 12, mappadding: bmfedgeinsets(left: 30, top: 0, right: 30, bottom: 0));
地图flutter widget构造,bmfmapwidget是地图flutter插件封装的一个支持androidview和uikitview的widget
container( height: screensize.height, width: screensize.width, child: bmfmapwidget( onbmfmapcreated: (controller) { onbmfmapcreated(controller); }, mapoptions: mapoptions, ), );完成以上配置,及可在flutter页面展示地图页面:
bmfmapoptions类的属性如下:
状态 | 含义 |
---|---|
maptype | 地图类型 |
limitmapbounds | 限制地图的显示范围 |
compassposition | 指南针的位置 |
center | 当前地图的中心点 |
zoomlevel | 地图比例尺级别,在手机上当前可使用的级别为4-21级 |
minzoomlevel | 地图的自定义最小比例尺级别 |
maxzoomlevel | 地图的自定义最大比例尺级别 |
rotation | 地图旋转角度,在手机上当前可使用的范围为-180~180度 (ios取int值) |
overlooking | 地图俯视角度,在手机上当前可使用的范围为-45~0度 (ios取int值) |
minoverlooking | 地图俯视角度最小值(即角度最大值),在手机上当前可设置的范围为-79~0度(ios独有) |
buildingsenabled | 设定地图是否现显示3d楼块效果 |
showmappoi | 设定地图是否显示底图poi标注(不包含室内图标注),默认true |
trafficenabled |
设定地图是否打开路况图层 |
baiduheatmapenabled |
设定地图是否打开百度城市热力图图层(百度自有数据),地图层级大于11时,可显示热力图 |
gesturesenabled |
设定地图view能否支持所有手势操作 |
zoomenabled |
设定地图view能否支持用户多点缩放(双指) |
zoomenabledwithtap |
设定地图view能否支持用户缩放(双击或双指单击,ios独有) |
scrollenabled |
设定地图view能否支持用户移动地图 |
overlookenabled |
设定地图view能否支持俯仰角 |
rotateenabled |
设定地图view能否支持旋转 |
forcetouchenabled |
设定地图是否回调force touch事件,默认为false,仅适用于支持 3d touch的情况(ios独有) |
showmapscalebar |
设定是否显示比例尺 |
mapscalebarposition |
比例尺的位置,设定坐标以bmkmapview左上角为原点,向右向下增长 |
logoposition |
logo位置 默认bmflogopositionleftbottom |
visiblemapbounds |
当前地图可显示范围(东北,西南)角坐标 |
mappadding |
地图预留边界,默认:(top:0, left:0, bottom:0, right:0), 设置后,会根据mappadding调整logo、比例尺、指南针的位置, 当updatetargetscreenptwhenmappaddingchanged==true时,地图中心(屏幕坐标:bmkmapstatus.targetscreenpt)跟着改 |
updatetargetscreenptwhenmappaddingchanged |
设置mappadding时,地图中心(屏幕坐标:bmkmapstatus.targetscreenpt)是否跟着改变,默认true(ios独有) |
changewithtouchpointcenterenabled |
设定双指手势操作时,地图的旋转和缩放效果的中心点(ios独有); 值为true时,以手势的中心点(二个指头的中心点)为中心进行旋转和缩放,地图中心点会改变;值为false时,以当前地图的中心点为中心进行旋转和缩放,地图中心点不变; 默认为false。 |
changecenterwithdoubletouchpointenabled |
设定双击手势放大地图时,bmkmapview的放大效果的中心点; 值为true时,以双击的位置为中心点进行放大,地图中心点会改变; 值为false时,以当前地图的中心点为中心进行放大,地图中心点不变; 默认为true。 |
baseindoormapenabled |
设定地图是否显示室内图(包含室内图标注),默认不显示 |
showindoormappoi |
设定室内图标注是否显示,默认true,仅当显示室内图(baseindoormapenabled为true)时生 |
地图类型与显示层级
地图类型或图层 | 显示层级 |
---|---|
2d地图 | 4-21 |
3d地图 | 19-21 |
卫星图 | 4-20 |
路况交通图 | 11-21 |
百度城市热力图 | 11-21 |
室内图 | 17-22 |
显示层级与比例尺
显示层级 | 比例尺/米 |
---|---|
4 | 1000000 |
5 | 500000 |
6 | 200000 |
7 | 100000 |
8 | 50000 |
9 | 25000 |
10 | 20000 |
11 | 10000 |
12 | 5000 |
13 | 2000 |
14 | 1000 |
15 | 500 |
16 | 200 |
17 | 100 |
18 | 50 |
19 | 20 |
20 | 10 |
21 | 5 |