当前位置: 首页 > news >正文

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)

1.问题描述:

提供两套标准方案,可根据体验需求选择:

1.地图Picker(地点详情)

用户体验:①展示地图 ②标记地点 ③用户选择已安装地图应用

接入文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-location-details-V5

2.导航意图面板

用户体验:①用户选择已安装地图应用

接入文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/start-intent-panel-V5

解决方案:

检查一下是否存在图片风控:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/push-image-control-V5

2.问题描述:

地图组件里marker的位置如何能固定在屏幕指定位置,比如我想让marker固定显示在 屏幕宽度/2,屏幕高度/4的位置上,该如何设置

解决方案:

这边可以尝试下使用stack布局,在地图组件上叠一个marker样式。

尝试下如下demo:


import { map, mapCommon, MapComponent } from '@kit.MapKit';import { AsyncCallback } from '@kit.BasicServicesKit';// 1、导入文件import display from '@ohos.display'@Entry@Componentstruct Index3 {private mapOptions?: mapCommon.MapOptions;private callback?: AsyncCallback<map.mapcomponentcontroller>;private mapController?: map.MapComponentController;@State screenWidth: number = 0@State screenHeight: number = 0aboutToAppear(): void {// 初始化图标// 地图初始化参数,设置地图中心点坐标及层级let target: mapCommon.LatLng = {latitude: 39.9181,longitude: 116.3970193};let cameraPosition: mapCommon.CameraPosition = {target: target,zoom: 15};this.mapOptions = {position: cameraPosition};// 地图初始化的回调this.callback = async (err, mapController) =&gt; {if (!err) {this.mapController = mapController;}}display.getAllDisplays((err, data) =&gt; {let screenWidth: number = data[0].widthlet screenHeight: number = data[0].heightconsole.log('width = ' + screenWidth + 'height = ' + screenHeight)console.log('width + height = ' + JSON.stringify(data))})}build() {Stack() {MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback }).width('100%').height('100%')marker().position({ x: "44%", y: "25%" })}}}@Componentstruct marker {build() {Column({ space: 5 }) {Image($r('app.media.xxx')).width(50)Text("xxxx")}.width(50).height(50)}}

3.问题描述:

使用华为地图进行地图开发,定位图标展示不满足需求;

期望是连续定位、地图中心点不跟随定位蓝点移动、定位蓝点的方向依据设备方向旋转;

目前最合适的是用defaule模式,但是default模式定位蓝点的方向无法旋转,期望能够支持跟随设备旋转。

解决方案:

经过确认,目前的规格就是,在连续定位时,进行随设备旋转和跟随移动。

设计时分析了常见的竞品,也都没有提供目前需求的这种方式。

如果不是连续定位的话,可以不跟随移动;

后续应该不会增加类似的功能,麻烦伙伴自行选择要用哪种模式。

4.问题描述:

如何打开三方地图应用候选列表?

解决方案:

可以使用Ability Kit提供的拉起导航类应用 能力:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/start-navigation-apps-V5

5.问题描述:

使用MapComponent组件,在mapCallback回调中添加marker,大头针太大,无法设置大小。

解决方案:

import { map, mapCommon, MapComponent } from '@kit.MapKit';import { AsyncCallback } from '@kit.BasicServicesKit';import { image } from '@kit.ImageKit';@Entry@Componentstruct AddMarker {private mapOptions?: mapCommon.MapOptions;private mapController?: map.MapComponentController;private callback?: AsyncCallback<map.mapcomponentcontroller>;@State imagePixelMap: PixelMap | undefined = undefined;getMarkerPixelMap() {getContext(this).resourceManager.getMediaContent($r("app.media.startIcon")).then((data) =&gt; {let arrayBuffer = data.buffer.slice(data.byteOffset, data.byteLength + data.byteOffset)let imageSource: image.ImageSource = image.createImageSource(arrayBuffer);imageSource.getImageInfo((err, value) =&gt; {//获取图片资源的尺寸console.log('testTag',`图片的尺寸为:width:${value.size.width}height:${value.size.height}`)if (err) {return;}//转PixelMap,也可以在这个里面设置宽和高,比如下面是在原有的宽高基础上放大5倍let opts: image.DecodingOptions ={ editable: true, desiredSize: { height: value.size.height*5, width: value.size.width*5 } };imageSource.createPixelMap(opts, (err,pixelMap) =&gt; {console.log('testTag', `createPixelMap`)this.imagePixelMap = pixelMapthis.addMarker()})})})}addMarker() {// Marker初始化参数let markerOptions: mapCommon.MarkerOptions = {position: {latitude: 31.984410259206815,longitude: 118.76625379397866},rotation: 0,visible: true,zIndex: 0,alpha: 1,anchorU: 0.5,anchorV: 1,clickable: true,draggable: true,flat: false,icon:this.imagePixelMap};console.log('testTag', `addMarker`)this.mapController?.addMarker(markerOptions);}aboutToAppear(): void {// 地图初始化参数this.mapOptions = {position: {target: {latitude: 31.984410259206815,longitude: 118.76625379397866},zoom: 15}};this.callback = async (err, mapController) =&gt; {if (!err) {console.log('testTag', `callback`)this.mapController = mapController;this.getMarkerPixelMap()}};}build() {Stack() {Column() {MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback });}.width('100%')}.height('100%')}}

6.问题描述:

javaScript引入华为地图API文件,其中key要经过URL转码。是如何转码的?

解决方案:

文档上说明使用API密钥时需要调用URLEncoder.encode(“Your apiKey”, “UTF-8”)方法对API密钥进行encodeURI编码。请参考文档:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/javascript-api-preparations-0000001078448006#section175508543353

如何保护API密钥?:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/faq-0000001050166999#section78166185011</map.mapcomponentcontroller></map.mapcomponentcontroller>

相关文章:

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)

1.问题描述&#xff1a; 提供两套标准方案&#xff0c;可根据体验需求选择&#xff1a; 1.地图Picker(地点详情) 用户体验&#xff1a;①展示地图 ②标记地点 ③用户选择已安装地图应用 接入文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guide…...

Leetcode 3469. Find Minimum Cost to Remove Array Elements

Leetcode 3469. Find Minimum Cost to Remove Array Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3469. Find Minimum Cost to Remove Array Elements 1. 解题思路 这一题我没啥特别好的思路&#xff0c;就只能动态规划了&#xff0c;倒是也能过&#xff0c;不过总…...

Excel的行高、列宽单位不统一?还是LaTeX靠谱

想要生成田字格、米字格、带拼音标准&#xff0c;方便小学生书法和练字。Word&#xff0c;Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时&#xff0c;如果没有专用模板、奇奇怪怪的插件&#xff0c;使用起来会碰到各种问题。比如&#xff0c;Word里面用…...

(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意&#xff1a;ESP-01sWIFI模块&#xff0c;去搜了一下这个小东西很有玩点&#xff0c;远程控制LED啥的&#xff0c;然后我就想…...

告别GitHub连不上!一分钟快速访问方案

一、当GitHub抽风时&#xff0c;你是否也这样崩溃过&#xff1f; &#x1f621; npm install卡在node-sass半小时不动&#x1f62d; git clone到90%突然fatal: early EOF&#x1f92c; 改了半天hosts文件&#xff0c;第二天又失效了... 根本原因&#xff1a;传统代理需要复杂…...

迷你世界脚本对象库接口:ObjectLib

对象库接口&#xff1a;ObjectLib 迷你世界 更新时间: 2023-04-26 20:21:09 具体函数名及描述如下: 序号 函数名 函数描述 1 getAreaData(...) 获取区域数据 2 getPositionData(...) 获取位置数据 3 getLivingData(...) 获取生物数据 4 getItemDat…...

数据库事务、乐观锁及悲观锁

参考&#xff1a;node支付宝支付及同步、异步通知、主动查询支付宝订单状态 以下容结合上述链接查看 1. 什么是数据库事务&#xff1f; 1.1. 连续执行数据库操作 在支付成功后&#xff0c;我们在自定义的paidSuccess里&#xff0c;依次更新了订单状态和用户信息。也就说这里…...

蓝桥王国--dij模板

#include <bits/stdc.h> // 万能头 using namespace std; typedef pair<long long ,int> PII; int n,m; long long d[300011]; struct edge///邻接表 {int v;long long w; }; int vis[300011]; vector<edge> mp[300011];///邻接表 void dij(int s)///dij单源…...

Java基础关键_017_集合(一)

目 录 一、概述 二、Collection 关系结构 1.概览 2.说明 三、Collection 接口 1.通用方法 &#xff08;1&#xff09;add(E e) &#xff08;2&#xff09;size() &#xff08;3&#xff09;addAll(Collection c) &#xff08;4&#xff09;contains(Object o) &#…...

Rust编程实战:Rust实现简单的Web服务,单线程性能问题

知识点 tcp 服务多线程处理 实现功能 启动web服务&#xff0c;访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind("127.0.0.1:7878").unwrap();处理客户端连接&#xff1a; for stream in lis…...

GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证

目录 一、什么是 GitLab SSH 密钥&#xff1f;二、为什么要使用 SSH 密钥&#xff1f;三、如何生成 SSH 密钥&#xff1f;1. Linux/macOS2. Windows 四、将公钥添加到 GitLab五、配置 SSH 客户端六、常见问题及解决方案七、总结 GitLab 是一个功能强大的 Git 仓库管理平台&…...

《论数据分片技术及其应用》审题技巧 - 系统架构设计师

论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;考生需对数据分片的基本概念有清晰的认识&#xff0c;理解数据分片是…...

【C++】当一个类A中没有声明任何成员变量和成员函数,sizeof(A)是多少?

在 C 中&#xff0c;即使一个类没有任何数据成员&#xff08;即空类&#xff09;&#xff0c;它的大小也不会是 0&#xff0c;而是 1。这主要有以下几个原因&#xff1a; 地址唯一性要求 C 标准规定&#xff0c;每个对象都必须有唯一的地址。如果空类的大小为 0&#xff0c;那么…...

Maven 私服的搭建与使用(一)

一、引言 在 Java 项目开发中&#xff0c;Maven 作为强大的项目管理和构建工具&#xff0c;极大地提高了开发效率&#xff0c;而 Maven 私服在开发过程中也扮演着至关重要的角色。私服是一种特殊的远程仓库&#xff0c;架设在局域网内&#xff0c;代理广域网上的远程仓库&…...

Ubuntu20.04双系统安装及软件安装(五):VSCode

Ubuntu20.04双系统安装及软件安装&#xff08;五&#xff09;&#xff1a;VSCode 打开VScode官网&#xff0c;点击中间左侧的deb文件下载&#xff1a; 系统会弹出下载框&#xff0c;确定即可。 在文件夹的**“下载”目录**&#xff0c;可看到下载的安装包&#xff0c;在该目录下…...

linux网络(3)—— socket编程(1)socket基础认识

欢迎来到博主的专栏&#xff1a;linux网络 博主ID&#xff1a;代码小豪 文章目录 IP与端口号socket字节序问题 IP与端口号 我们现在知道了&#xff0c;只要发送的报文的报头包含目的IP地址和源IP地址&#xff0c;就能通过通信设备&#xff0c;是两台主机进行远程通信&#xff…...

【Kubernets】K8S内部nginx访问Service资源原理说明

文章目录 原理概述**一、核心概念****二、Nginx 访问 Service 的流程****1. Service 的作用****2. Endpoint 的作用****3. Nginx Pod 发起请求****(1) DNS 解析****(2) 流量到达 kube-proxy****(3) 后端 Pod 处理请求** **三、不同代理模式的工作原理****1. iptables 模式****2…...

使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南

使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南 前言环境准备目录创建启动Docker容器 数据库配置修改进入容器启动SQL*PlusPDB操作与字符串扩展设置配置验证 管理员用户创建注意事项总结 前言 本文将详细讲解在Docker环境中配置Oracle Database 23a…...

使用pytorch和opencv根据颜色相似性提取图像

需求&#xff1a;将下图中的花朵提取出来。 代码&#xff1a; import cv2 import torch import numpy as np import timedef get_similar_colors(image, color_list, threshold):# 将图像和颜色列表转换为torch张量device torch.device(cuda if torch.cuda.is_available() el…...

MySQL 8.X 报错处理

1.重新加载配置 reload the configuration mysql> ALTER INSTANCE RELOAD KEYRING; ERROR 1227 (42000): Access denied; you need (at least one of) the ENCRYPTION_KEY_ADMIN privilege(s) for this operation 提示需要ENCRYPTION_KEY_ADMIN权限 重新授权 GRANT ENCR…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...