百度地图SDK Flutter插件为开发者提供了在Flutter开发中便捷的使用百度地图能力的接口,通过以下几步操作,即可在您的应用中使用百度地图
在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 | 设定地图是否回调forcetouch事件,默认为false,仅适用于支持3DTouch的情况(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 |
上一篇
下一篇
本篇文章对您是否有帮助?