华为HarmonyOS地图服务 1 -- 如何实现地图呈现?

news/2024/9/23 1:23:02 标签: harmonyos, 华为

如何使用地图组件MapComponent和MapComponentController呈现地图,效果如下图所示。

 

baf5bc37172aff0a177768e2a142604c.png

  • MapComponent是地图组件,用于在您的页面中放置地图。
  • MapComponentController是地图组件的主要功能入口类,用来操作地图,与地图有关的所有方法从此处接入。它所承载的工作包括:地图类型切换(如标准地图、空地图)、改变地图状态(中心点坐标和缩放级别)、添加点标记(Marker)、绘制几何图形(MapPolyline、MapPolygon、MapCircle)、监听各类事件等。

开发步骤

地图显示

    1. 导入Map Kit相关模块。

import { MapComponent, mapCommon, map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';

    2. 建地图初始化参数mapOption,设置地图中心点坐标及层级。

       通过callback回调的方式获取MapComponentController对象,用来操作地图。

       调用MapComponent组件,传入mapOption和callback参数,初始化地图。

@Entry
    @Component
    struct HuaweiMapDemo {
    private TAG = "HuaweiMapDemo";
    private mapOption?: mapCommon.MapOptions;
    private callback?: AsyncCallback<map.MapComponentController>;
    private mapController?: map.MapComponentController;
    aboutToAppear(): void {
    // 地图初始化参数,设置地图中心点坐标及层级
    this.mapOption = {
    position: {
    target: {
    latitude: 39.9,
    longitude: 116.4
    },
    zoom: 10
    }
    };
    // 地图初始化的回调
    this.callback = async (err, mapController) => {
    if (!err) {
    // 获取地图的控制器类,用来操作地图
    this.mapController = mapController;
    this.mapController.on("mapLoad", () => {
    console.info(this.TAG, `on-mapLoad`);
    });
    }
    };
    }
    // 页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效
    onPageShow(): void {
    // 绘制地图页面的生命周期onPageShow,将地图切换到前台
    if (this.mapController !== undefined) {
    this.mapController.show();
    }
    }
    // 页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景,仅@Entry装饰的自定义组件生效。
    onPageHide(): void {
    // 绘制地图页面的生命周期onPageHide,将地图切换到后台
    if (this.mapController !== undefined) {
    this.mapController.hide();
    }}
    build() {
    Stack() {
    // 调用MapComponent组件初始化地图
    MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback                     
    }).width('100%').height('100%');
    }.height('100%')
    }
    }

 

    3. 运行您刚完成的工程就可以在您的APP中看到地图了,运行后的效果如下图所示。

       如果没有成功加载地图,请参见无法加载地图。

 

87da5a3558e607b72a6740555e8cb40a.png

 

 

 


http://www.niftyadmin.cn/n/5671092.html

相关文章

【网络安全】修改忘记密码功能请求包实现账户接管

未经许可,不得转载。 文章目录 正文在 HTTP 请求中,Host 头用于指定目标服务器的域名。当用户发出请求时,服务器通常会使用 Host 头来决定请求的处理方式,例如生成重置密码链接时,服务器需要知道应该发送到哪个域名。 正文 首先,在忘记密码功能中输入受害者的邮箱地址,…

C++ 落地AI项目教程:以libtorch实现DGA恶意域名的检测

# C++ 落地AI项目教程:以libtorch实现DGA恶意域名的检测 1. DGA域名 域名的生成方式域名生成算法(DGA) 是一个可以生成大量新域名的程序。 网络犯罪分子和僵尸网络运营者会使用域名生成算法来频繁更改所使用的域名,从而花样翻新地发起各种恶意软件攻击。 利用这项技术,黑客可…

STM32项目分享:智能风扇系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com/video/BV1xw4m1Y7sA…

读博对心理有持续负面影响?终于有论文证实了!确实是真的!

大家好&#xff01;我是奶茶。 众所周知&#xff0c;读博&#xff0c;是一件压力山大的活动。 《Nature》有一项调查统计显示&#xff1a;39%以上的博士有抑郁或焦虑的症状&#xff0c;是正常人群的6倍以上。 这摆出了一个残酷的事实&#xff1a;读博期间患上精神类疾病的概…

signalR和WebSocket的区别是什么

SignalR和WebSocket都是用于实现实时双向通信的技术&#xff0c;但它们在多个方面存在区别。以下是它们之间的主要区别&#xff1a; 1. 技术层次与协议支持 WebSocket&#xff1a; 是一种在单个TCP连接上进行全双工通信的协议。它是HTML5规范的一部分&#xff0c;提供了浏览器…

Python青少年简明教程目录

Python青少年简明教程目录 学习编程语言时&#xff0c;会遇到“开头难”和“深入难”的问题&#xff0c;这是许多编程学习者都会经历的普遍现象。 学习Python对于青少年来说是一个很好的编程起点&#xff0c;相对容易上手入门&#xff0c;但语言特性复杂&#xff0c;应用较广&…

Qt5详细安装教程(包含导入pycharm)

1.自行下载Qt 2.双击进行安装 3.设置完成后勾选接受&#xff0c;跳转下一步 4.可选择安装位置&#xff0c;比较习惯安装在D盘 5.根据需求勾选对应组件安装 6.安装完成后&#xff0c;打开pycharm&#xff0c;进入settings—>选择ExternalTools&#xff0c;根据以下步骤进行配…

开源RK3588 AI Module7,并与Jetson Nano生态兼容的低功耗AI模块

RK3588 AI Module7 搭载瑞芯微 RK3588&#xff0c;提供强大的 64 位八核处理器&#xff0c;最高时钟速度为 2.4 GHz&#xff0c;6 TOPS NPU&#xff0c;并支持高达 32 GB 的内存。它与 Nvidia 的 Jetson Nano 接口兼容&#xff0c;具有升级和改进的 PCIe 连接。由于该模块的多功…