【HarmonyOS】鸿蒙应用实现调用系统地图导航或路径规划

news2024/11/24 19:17:15

【HarmonyOS】鸿蒙应用实现调用系统地图导航或路径规划

前言

在涉及地图业务中,调用地图导航和路径规划是三方应用中较为常见的功能。

若只是子业务需要地图导航效果,整个APP内部集成地图去实现导航或者路径规划,会造成SDK集成冗余。毕竟很重。

所以该效果一般会调用系统地图,来显示当前坐标和目标坐标的路径规划或者实时导航。

鸿蒙系统提供了一种极其简单的调用方式,默认是自己当前的坐标为基础,

需要注意的是,国内的坐标系是GCJ02坐标系,国外才是wgs84坐标系。

示例效果

地图导航:
在这里插入图片描述
路径规划:
在这里插入图片描述

DEMO示例

系统地图应用的包名为:
‘com.huawei.hmos.maps.app’

import { common, Want } from '@kit.AbilityKit';



struct Index {


  aboutToAppear(): void {

  }

  StartNavi = ()=>{
    let petalMapWant: Want = {
      bundleName: 'com.huawei.hmos.maps.app',
      uri: 'maps://routes', // 路径规划
      // uri: 'maps://navigation', // 导航
      parameters: {
      	// 接入方业务名或包名,Link请求来源。
        linkSource: 'com.example.navitest',
        destinationLatitude: 40.0382556,
        destinationLongitude: 116.3144536,
        // 终点Poi ID,如果有,优先使用(Map Kit返回的Poi信息含Poi ID)。
        destinationPoiId: '906277887815706098',
        destinationName: '北京清河高铁站',
        vehicleType: 0 // 交通出行工具。0-驾车, 1-步行, 2-骑行。默认驾车
      }
    }

    let context = getContext(this) as common.UIAbilityContext;
    context.startAbility(petalMapWant);
  }

  build() {
    RelativeContainer() {
      Text("唤起导航")
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(this.StartNavi)
    }
    .height('100%')
    .width('100%')
  }
}

wgs84坐标系转化为gcj02:

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

let wgs84Position: mapCommon.LatLng = {
  latitude: 30,
  longitude: 118
};
let gcj02Position: mapCommon.LatLng =
  map.convertCoordinateSync(mapCommon.CoordinateType.WGS84, mapCommon.CoordinateType.GCJ02, wgs84Position);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

校园外卖服务系统设计与实现

TOC springboot292校园外卖服务系统设计与实现 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性&…

若依 Ruoyi4.7.9 创建页面并显示

自行从https://gitee.com/y_project/RuoYi下载源代码,这个不再赘述。 // 下载后会发现现在的Ruoyi环境,分成了6个模块: 模块主要的介绍大家可以看文档。 官网地址:https://doc.ruoyi.vip/ruoyi/ 我下载的这个是基于mvc框架&…

CTFHUB-技能树-Web题-RCE(远程代码执行)-远程包含-命令注入-过滤空格

CTFHUB-技能树-Web题-RCE&#xff08;远程代码执行&#xff09;-远程包含-命令注入-过滤空格 就是过滤掉了空格 找能代替空格的代替就行了 使用IFS$9、%09、<、>、<>、{,}、%20、${IFS}、${IFS}来代替空格 127.0.0.1;cat${IFS}xxxx.php先来查看一下目录 127.0.0…

python可视化数据练习(地形图)

一、数据展示&#xff08;可通过目录直接跳转到代码部分&#xff09; {"lastUpdateTime":"2021-08-18 10:53:30","chinaTotal":{"confirm":122482,"heal":112984,"dead":5669,"nowConfirm":3829,"…

基于Spring boot的名城小区物业管理系统

TOC springboot240基于Spring boot的名城小区物业管理系统 绪论 1.1研究背景与意义 1.1.1研究背景 近年来&#xff0c;第三产业发展非常迅速&#xff0c;诸如计算机服务、旅游、娱乐、体育等服务行业&#xff0c;对整个社会的经济建设起到了极大地促进作用&#xff0c;这一…

Xilinx(AMD)的怪异行为——ila的radix没有real格式

使用vivado 2021.1的过程中发现&#xff0c;仿真时&#xff0c;可以选择把数据的radix按照定点或浮点格式显示&#xff1a; 显示效果如下&#xff1a; 仿真完后&#xff0c;在ila中观察&#xff0c;发现定点和浮点显示的菜单少了几项&#xff1a; xilinx为什么会把这么有用的…

剑指offer--面试题58.翻转字符串

题目描述 输入一个英文句子&#xff0c;翻转句子中单词的顺序&#xff0c;但单词内字符的顺序不变。为简单起见&#xff0c;标点符号和普通字母一样处理。例如输入字符串”I am a student.“,则输出”student. a am I“。 算法分析 完整代码 #include <string.h> //把起…

html+css+js网页设计 作业歌帝梵官网首页1个页面6个js效果

htmlcssjs网页设计 作业歌帝梵官网首页1个页面6个js效果 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获…

安卓主板_MTK联发科主板定制开发|PCBA定制开发

MTK联发科安卓主板&#xff0c;采用MT6762八核平台方案&#xff0c;支持谷歌Android 11.0系统&#xff0c;MT6762采用ARM八核A53内核芯片、主频高达2.0GHz&#xff0c;GPU采用ARM PowerVR GE8329650MHZ&#xff0c;支持主流19201080分辨率&#xff0c;支持硬解H.264&#xff0c…

Typora使用教程-修改配置文件-免费使用

Typora特点 简洁美观&#xff1a;Typora的界面非常简洁&#xff0c;没有繁琐的菜单和工具栏&#xff0c;只有一个干净的编辑窗口。它使用 Markdown语法&#xff0c;将文本转化为漂亮的排版&#xff0c;无需关注样式和格式的细节。所见即所得&#xff1a;Typora实时显示Markdow…

希尔排序,详细解析(附图解)

1.希尔排序思路 希尔排序是一种基于插入排序的算法&#xff0c;通过将原始数据分成若干个子序列&#xff0c;然后对子序列进行插入排序&#xff0c;逐渐减小子序列的间隔&#xff0c;最后对整个序列进行一次插入排序。 1.分组直接插入排序&#xff0c;目标接近有序--------…

「Unity3D」属性面板(Inspector)上增删操作,序列化的Dictionary对象的k-v数值

Unity无法序列化Dictionary对象&#xff0c;可以通过实现ISerializationCallbackReceiver接口&#xff0c;来自定义实现&#xff0c;即&#xff1a;搞一个key list和一个value list分别存储dict的k-v&#xff0c;于是属性面板上就会显示&#xff0c;k-v的两个列表。 但这会有一…

【鸿蒙基础系列】鸿蒙基础组件

&#x1f41f;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢编程&#x1fab4; &#x1f421;&#x1f419;个人主页&#x1f947;&#xff1a;Aic山鱼 &#x1f420;WeChat&#xff1a;z7010cyy &#x1f988;系列专栏&#xff1a;&#x1f3de;️ 前端-JS基础专栏✨前…

stm32智能颜色送餐小车(红外光管避障)

大家好啊&#xff0c;我是情谊&#xff0c;今天我们来介绍一下我最近设计的stm32产品&#xff0c;我们在今年七月份的时候参加了光电设计大赛&#xff0c;我们小队使用的就是stm32的智能送餐小车&#xff0c;虽然止步于省赛&#xff0c;但是还是一次成长的经验吧&#xff0c;那…

Sql与Rce注入相关漏洞复现

目录 sqli-labs注入第38&#xff0c;48关 第38关&#xff08;单引号闭合&#xff09; ​编辑 第48关 (GET请求-基于错误-盲注-数字型-order by 排序 ​编辑 贷齐乐系统多处Sql注入漏洞 环境搭建 将贷齐乐源码放入phpstudy中的www目录下 在phpstudy上创建网站&#xff1…

DevEcoStudio对Gitee进行变基与合并

当尝试将本地分支的更改推送到远程仓库&#xff0c;但是远程仓库中的该分支已经有了您本地分支中没有的提交时&#xff0c;会出现这个提示。 具体来说&#xff0c;这个提示意味着&#xff1a; 推送被拒绝&#xff1a;不能直接将更改推送到远程仓库&#xff0c;因为远程仓库中…

WeNet模型学习笔记

WeNet是一个端到端语音识别模型&#xff0c;由于其优越的特性&#xff0c;成为近几年语音识别领域的热门模型。WeNet模型是一种CTC和attention结构的混合体&#xff0c;以Conformer或Transformer作为encoder&#xff0c;并使用attention decoder对CTC的输出进行重新打分(rescor…

微信小程序用 pinia数据化存储信息

import { defineStore } from pinia import { ref } from vue import type {LoginResult} from /types/member //定义 Store export const useMemberStore defineStore( member, () > { // 会员信息 const profile ref<LoginResult>() //保存会员信息&#xff0c…

MySQL数据库:详细安装与配置指南

目录 背景: 一.下载过程(MySQL数据库): 二.安装过程(MySQL数据库)&#xff1a; 三.验证MySQL是否安装成功 背景: MySQL 是一个流行的开源关系数据库管理(RDBMS)&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后俩该公司被Sun Microsystems收购&#xff0c;Sun Microsyste…

el-table的多选功能

html&#xff1a; <el-table :data"list" row-key"id" selection-change"handleSelectionChange"><el-table-column type"selection" width"55"/> </el-table> js变量&#xff1a; data () {return {/…