浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
事件交互
下载开发文档

本章节将对地图监听事件做介绍,地图事件监听(地图状态改变、各种手势、截屏)等。

地图事件监听

SDK定义了各种地图相关事件的监听,提供相应的事件监听方法,包括地图状态的改变、手势事件、地图渲染、地图截屏事件等。如下所示:

设置地图加载完成回调:

/// 地图加载回调
myMapController?.setMapDidLoadCallback(callback: () {
});

设置地图渲染完成回调:

/// 地图渲染完成回调
myMapController?.setMapDidFinishedRenderCallback(callback: (bool success) {
});

设置地图渲染每一帧画面过程中,以及每次需要重绘地图时(例如添加覆盖物)回调接口:

/// 地图渲染每一帧画面过程中,以及每次需要重绘地图时(例如添加覆盖物)都会调用此接口
myMapController?.setMapOnDrawMapFrameCallback(callback: (BMFMapStatus mapStatus) {
});

设置地图区域即将改变时会调用此接口:

/// 地图区域即将改变时会调用此接口
/// mapStatus 地图状态信息
myMapController?.setMapRegionWillChangeCallback(callback: (BMFMapStatus mapStatus) {
});

设置地图区域改变完成后会调用接口:

/// 地图区域改变完成后会调用此接口
/// mapStatus 地图状态信息
myMapController?.setMapRegionDidChangeCallback(
callback: (BMFMapStatus mapStatus) {
});

设置地图区域即将改变时会调用接口,带有reason返回值:

/// 地图区域即将改变时会调用此接口
/// mapStatus 地图状态信息
/// regionChangeReason 地图改变原因
myMapController?.setMapRegionWillChangeWithReasonCallback(callback:
(BMFMapStatus mapStatus, BMFRegionChangeReason regionChangeReason) {
});

设置地图区域改变完成后会调用接口,带有reason返回值:

/// 地图区域改变完成后会调用此接口
/// mapStatus 地图状态信息
/// regionChangeReason 地图改变原因
myMapController?.setMapRegionDidChangeWithReasonCallback(callback:
(BMFMapStatus mapStatus, BMFRegionChangeReason regionChangeReason) {
});

设置点击底图空白处会回调接口:

/// 点中底图空白处会回调此接口
/// coordinate 经纬度
myMapController?.setMapOnClickedMapBlankCallback( callback: (BMFCoordinate coordinate) {
});

设置点中底图标注后会回调接口:

/// 点中底图标注后会回调此接口
myMapController?.setMapOnClickedMapPoiCallback(
callback: (BMFMapPoi mapPoi) {
});

双击地图时会回调此接口:

/// 双击地图时会回调此接口
/// coordinate 经纬度
myMapController?.setMapOnDoubleClickCallback(callback: (BMFCoordinate coordinate) {
});

设置长按地图时会回调接口:

/// 长按地图时会回调此接口
myMapController?.setMapOnLongClickCallback(callback: (BMFCoordinate coordinate) {
});

3DTouch 点击地图时会回调此接口:

注:目前ios支持,Android不支持

/// 3DTouch 按地图时会回调此接口
///(仅在支持3D Touch,且fouchTouchEnabled属性为true时,会回调此接口)
/// coordinate 触摸点的经纬度
/// force 触摸该点的力度(参考UITouch的force属性)
/// maximumPossibleForce 当前输入机制下的最大可能力度(参考UITouch的maximumPossibleForce属性)
myMapController?.setMapOnForceTouchCallback(callback:(BMFCoordinate coordinate, double force, double maximumPossibleForce) {
});

设置地图状态改变完成后回调接口:

/// 设置地图状态改变完成后回调接口
myMapController?.setMapStatusDidChangedCallback(callback: () {
});

设置地图View进入/移出室内地图回调接口:

/// 地图View进入/移出室内图会调用此方法
/// flag YES:进入室内图,false:移出室内图
/// baseIndoorMapInfo 室内图信息
myMapController?.setMapInOrOutBaseIndoorMapCallback(
callback: (bool flag, BMFBaseIndoorMapInfo baseIndoorMapInfo) {
});
地图截屏

地图截屏接口:

void takeSnapshort() async {
Uint8List image = await myMapController?.takeSnapshot();
}

上一篇

控件和手势

下一篇

方法交互

本篇文章对您是否有帮助?