文档管理中心
指南应用服务Map Kit(地图服务)地图交互地图截图

地图截图

本章节将向您介绍如何实现地图截图功能。

地图截图指对当前屏幕显示区域进行截屏,支持对地图、覆盖物、Logo进行屏幕截图。地图截图功能适用于需要将当前地图状态保存为图片的场景,如分享当前位置、生成导航路线图、记录特定视角的地图内容等。该功能可以帮助开发者快速实现地图内容的可视化输出,提升用户体验。

接口说明

以下是地图截图相关接口,以下功能主要由snapshot提供,更多接口及使用方法请参见接口文档

展开
接口名 描述
snapshot(): Promise<image.PixelMap> 地图截图。

开发步骤

  1. 导入相关模块。

    收起
    自动换行
    深色代码主题
    复制
    1. import { MapComponent, mapCommon, map } from '@kit.MapKit';
    2. import { AsyncCallback } from '@kit.BasicServicesKit';
    3. import { image } from '@kit.ImageKit';
  2. 调用snapshot方法对当前屏幕进行截图。

    收起
    自动换行
    深色代码主题
    复制
    1. @Entry
    2. @Component
    3. struct MapScreenshotsDemo {
    4. // ...
    5. private mapOptions?: mapCommon.MapOptions;
    6. private mapController?: map.MapComponentController;
    7. private callback?: AsyncCallback<map.MapComponentController>;
    8. @State image?: image.PixelMap = undefined;
    9. aboutToAppear(): void {
    10. // 地图初始化参数,设置地图中心点坐标及层级
    11. this.mapOptions = {
    12. position: {
    13. target: {
    14. latitude: 39.9,
    15. longitude: 116.4
    16. },
    17. zoom: 10
    18. }
    19. };
    20. // 地图初始化的回调
    21. this.callback = async (err, mapController) => {
    22. if (!err) {
    23. // 获取地图的控制器类,用来操作地图
    24. this.mapController = mapController;
    25. } else {
    26. console.error(`Failed to initialize the map, code is:${err.code}, message is ${err.message}`);
    27. }
    28. };
    29. }
    30. build() {
    31. // ...
    32. Stack() {
    33. Column() {
    34. MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback })
    35. .width('100%')
    36. .height('50%');
    37. Scroll(new Scroller()) {
    38. Column() {
    39. Image(this.image)
    40. .objectFit(ImageFit.Auto)
    41. .border({ width: 1, color: Color.Red }).width('100%')
    42. Button('获取截图')
    43. .margin({ left: 10 })
    44. .fontSize(12)
    45. .onClick(async () => {
    46. if (this.mapController) {
    47. // 获取截图
    48. let pixelMap = await this.mapController.snapshot();
    49. this.image = pixelMap;
    50. }
    51. });
    52. }
    53. }.width('70%').height('50%')
    54. }.width('100%')
    55. }.height('100%')
    56. // ...
    57. }
    58. }
在 指南 中进行搜索
请输入您想要搜索的关键词