UniApp 制作高德地图插件

news2024/11/16 23:38:03

1、下载Uni插件项目

在Uni官网下载Uni插件项目,并参考官网插件项目创建插件项目.

开发者须知 | uni小程序SDK

如果下载下来项目运行不了可以参考下面链接进行处理

UniApp原生插件制作_wangdaoyin2010的博客-CSDN博客

2、引入高德SDK

2.1 在高德官网下载对应SDK

相关下载-Android 地图SDK | 高德地图API

2、引入高德SDK

Android Studio 配置工程-创建工程-开发指南-Android 地图SDK | 高德地图API

也可以参考:高德地图:No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeInitParam_易寻资料的博客-CSDN博客

 注意:一定要按照官网方式进行引入,且多种方式不能混合起引用,本人比较建议使用方法一

3、设置ApiKey和更新隐私合规

调用如下方法进行隐私合规更新和设置APiKey

可以参考:开发者注意事项-创建工程-开发指南-iOS 地图SDK | 高德地图API

MapsInitializer.updatePrivacyShow(this.mUniSDKInstance.getContext(), true, true);
MapsInitializer.updatePrivacyAgree(this.mUniSDKInstance.getContext(), true);
MapsInitializer.setApiKey(apiKey);

4、创建一个组件打开高德离线地图

package com.mnyc.amap.amap3dsearch;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import androidx.annotation.NonNull;

import com.alibaba.fastjson.JSONObject;
import com.amap.api.maps.MapsInitializer;
import com.amap.api.maps.offlinemap.OfflineMapActivity;

import java.util.HashMap;
import java.util.Map;

import io.dcloud.feature.uniapp.UniSDKInstance;
import io.dcloud.feature.uniapp.ui.action.AbsComponentData;
import io.dcloud.feature.uniapp.ui.component.AbsVContainer;
import io.dcloud.feature.uniapp.ui.component.UniComponent;
import io.dcloud.feature.uniapp.ui.component.UniComponentProp;

/**
 * 自定义打开离线地图组件按钮
 */
public class MnycAMapOfficelineButton extends UniComponent<Button> implements View.OnClickListener {
    Context context;
    Button button;
    private static final String TAG = "MnycAMapOfficelineButton";

    public MnycAMapOfficelineButton(UniSDKInstance instance, AbsVContainer parent, AbsComponentData componentData) {
        super(instance, parent, componentData);
    }

    @Override
    protected Button initComponentHostView(@NonNull Context context) {
        this.context = context;
        button = new Button(context);
        button.setText("离线地图");
        button.setOnClickListener(this);
        return button;
    }

    @Override
    public void onClick(View view) {
        try {
            context.startActivity(new Intent(this.context, OfflineMapActivity.class));
        } catch (Exception e) {
            exception(e);
            Log.e(TAG, e.getMessage());
        }
    }

    @UniComponentProp(name = "label")
    public void setLongitude(String label) {
        button.setText(label);
    }

//    将打开离线地图异常进行抛出成Uni中的事件
    public void exception(Exception exception) {
        JSONObject dataJson=new JSONObject();
        JSONObject detailJson=new JSONObject();
        detailJson.put("exception", exception);
        //目前uni限制 参数需要放入到"detail"中 否则会被清理
        dataJson.put("detail", detailJson);
        fireEvent("exception", dataJson);
    }
}

5、错误场景

错误1:离线地图组件没有城市列表

问题:没有调用高德更新隐私合规两个方法,进行调用即可

错误2:地图组件为白色

问题:没有调用高德更新隐私合规两个方法,进行调用即可

错误3:地图为黑屏、但是有高德Logo和放大缩小按钮

 问题:so文件引入错误,按照官网方法1引入sdk(so文件),注意不能多种方式混合引入

错误4:离线地图组件“下载出现异常”在AS中调试或者使用真机调试可以正常下载地图,打包成插件使用UniApp进行调试时出现“下载出现异常”

问题:有可能是高德ApiKey没有正确配置

解决思路:不适用高德离线地图组件,通过如下代码手动下载,在OfflineMapManager第二个参数对应类的onDownload方法中可以查看具体的错误代码是多少

/构造OfflineMapManager对象 
OfflineMapManager amapManager = new OfflineMapManager(this, this);
//按照citycode下载
amapManager.downloadByCityCode(String citycode);
//按照cityname下载
amapManager.downloadByCityName(String cityname);

离线地图状态值

 每个值对应具体说明

 OfflineMapStatus 说明

注意:使用同一个Key在AS中调试下载等正常,因为在AS中使用的是调试模式,然后SDK中带了调试证书,所以可以正常下载。打包成SDk后放到Uni中生成自定义基座进行调试,这样在高德地图SDK这块就是使用的是你自己配置的ApiKey证书,所以如果这个证书配置错误就出现下载失败。

注意:目前发现不管ApiKey是否设置正确都地图都能够正常显示,只是离线地图下载失败,所以这点需要注意。

 

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

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

相关文章

e6zzseo:跨境独立站还能做起来吗?

跨境独立站指的是在其他国家或地区创建和运营自己的电子商务网站。虽然跨境独立站在理论上是可行的&#xff0c;但成功实施和运营它可能面临一些挑战。以下是e6zzseo分析的一些考虑因素和建议&#xff0c;以帮助你更好地评估是否可以成功运营跨境独立站&#xff1a; 做跨境独立…

【0基础入门Python笔记】python 之基础语法、基础数据类型、复合数据类型及基本操作

python 基础&#xff08;一&#xff09; 基础语法规则基础数据类型数字类型&#xff08;Numbers&#xff09;字符串类型&#xff08;String&#xff09;布尔类型&#xff08;Boolean&#xff09; 复合数据类型List&#xff08;列表&#xff09;Tuple&#xff08;元组&#xff0…

excel常见的数学函数篇2

二、数学函数 1、ABS(number)&#xff1a;返回数字的绝对值 语法&#xff1a;ABS(数字)&#xff1b;返回数字的绝对值&#xff1b;若引用单元格&#xff0c;把数字换为单元格地址即可 2、INT(number)&#xff1a;向小取整 语法&#xff1a;INT(数字)&#xff1b;若引用单元格…

自夹持P型屏蔽型碳化硅沟槽型绝缘栅双极晶体管,用于低开通电压和开关损耗

目录 标题&#xff1a;Self-Clamped P-shield SiC Trench IGBT for Low On-State Voltage and Switching LossProceedings of the 35st International Symposium on Power Semiconductor Devices & ICs摘要信息解释研究了什么文章的创新点文章的研究方法文章的结论 标题&am…

为什么要报11月份的PMP考试?一篇说清楚!

各位PMP考生即将迎来8.19的考试&#xff0c;现在心里难免会有点焦虑&#xff0c;相信大家在系统的学习完PMP课程之后&#xff0c;都能顺利上岸&#xff0c;3A通过&#xff01; 另外PMP11月份的考试正在报名当中&#xff01;大家尽量提前报名&#xff0c;给自己留充足的时间备考…

夏威夷等全球多地深陷「末日狂烧」,关键时刻 AI 监测能否跑赢野火?

内容一览&#xff1a;当地时间 8 月 8 日&#xff0c;美国夏威夷州突发野火&#xff0c;当地居民和游客不得不跳入太平洋中躲避火势。截至 8 月 17 日&#xff0c;这场野火已经造成110 人死亡&#xff0c;超过 1000人失踪。与此同时&#xff0c;美国、加拿大、法国等地也正遭遇…

GPU短缺:人工智能行业的可持续发展问题

原创 | 文 BFT机器人 2023年8月&#xff0c;人工智能似乎会受到GPU供应的瓶颈。 “人工智能热潮被低估的一个原因是GPU/TPU短缺。这种短缺导致了产品推出和模型培训的各种限制&#xff0c;但这些都不明显。相反&#xff0c;我们看到的是英伟达的股价飙升。一旦供给满足需求&am…

c语言——字符转ASCLL码

//字符转ASCLL码 #include<stdio.h> #include<stdlib.h> int main() {char c;printf("输入字符&#xff1a;");scanf("%c",&c);printf(" %c 的ASCLL为: %d \n",c,c);system("pause");return 0;}

修改文件内容

修改文件内容 按照下方所述&#xff0c;创建一个名为 /home/curtis/ansible/issue.yml 的 playbook &#xff1a; 该 playbook 将在所有清单主机上运行 该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本&#xff1a; 在 dev 主机组中的主机上&#xff0c;这行文本…

通过模拟考试系统培养学生应对压力的能力

随着现代社会竞争的加剧&#xff0c;学生面临着越来越大的考试压力。为了培养学生应对压力的能力&#xff0c;许多学校开始采用模拟考试系统。模拟考试系统通过模拟真实考试环境和考试内容&#xff0c;帮助学生逐渐适应考试压力&#xff0c;并提供相应的培训和指导。 模拟考试…

pytorch2.0.1 安装部署(cpu+gpu) linux+windows

官网打开可能较慢&#xff0c;耐心等待 pytorch官网 以下操作在默认网络环境即可使用 一、说明和前期准备 1.pytorch是一个和tensorflow类似的框架 如果需要安装tensorflow&#xff0c;可以参考&#xff1a; tensorflow 1&#xff0c;2 cpugpu&#xff08;windowslinux&…

演讲与口才能力培训的实践案例分析

演讲与口才能力培训的实践案例分析 摘要&#xff1a; 演讲与口才能力是一项重要的沟通技巧&#xff0c;对于个人和职业发展都具有重要意义。本文通过案例分析的方式&#xff0c;探讨了演讲与口才能力培训的实践&#xff0c;以及培训对于个人能力提升的影响。通过对不同案例的研…

12、缓存双写一致性之更新策略探讨

缓存双写一致性之更新策略探讨 1、 面试题 只要双写&#xff0c;就一定会有数据一致性问题&#xff0c;那么如何解决一致性问题&#xff1f; 双写一致性&#xff0c;你先动缓存redis还是数据库&#xff1f;为什么&#xff1f; 延时双删做过吗&#xff1f;会有哪些问题&#xf…

《算法竞赛·快冲300题》每日一题:“立方体表面距离”

《算法竞赛快冲300题》将于2024年出版&#xff0c;是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码&#xff0c;以中低档题为主&#xff0c;适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 立…

作为spring框架的另外的重点AOP的介绍(详细篇)

一.Aop介绍&#xff0c;以及作用范围&#xff0c;和其专业名词的解释 1.什么是Aop&#xff1f; Java Spring中的AOP&#xff08;面向切面编程&#xff09;是一种编程范式&#xff0c;用于通过将与核心业务逻辑无关的横切关注点&#xff08;如日志记录、性能统计、安全控制等&…

BOXTRADE-天启量化分析平台 系统功能预览

BOXTRADE-天启量化分析平台 系统功能预览 系统功能预览 1.登录 首页 参考登录文档 2. A股 行情与策略分析 2.1 A股股票列表 可以筛选和搜索 2.2 A股行情及策略回测 2.2.1 行情数据提供除权和前复权&#xff0c;后复权数据&#xff1b;外链公司信息 2.2.2 内置策略执行结果…

使用 PyTorch 进行高效图像分割:第 2 部分

一、说明 这是由 4 部分组成的系列的第二部分&#xff0c;旨在使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。本部分将重点介绍如何实现基线图像分割卷积神经网络&#xff08;CNN&#xff09;模型。 图 1&#xff1a;使用 CNN 运行图像分割的结果。按从上到下的顺序…

建筑结构健康监测系统,解锁建筑安全监测新模式

随着现代建筑技术的发展&#xff0c;高层、超高层、大型公共建筑以及桥梁等复杂结构的数量不断增加&#xff0c;对建筑结构监测的要求也日益迫切。万宾建筑结构健康监测系统通过先进的传感技术和和数据分析技术来持续监测建筑的结构健康&#xff0c;这种监测的目的是可以识别建…

Cat(4):API介绍—Transaction

1 基本用法 Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用&#xff0c;数据库调用&#xff0c;也适合执行时间较长的业务逻辑监控&#xff0c;Transaction用来记录一段代码的执行时间和次数。 现在我们的框架还没有与dubbo、mybatis做集成&#xff0c;所以我…

网络协议的定义、组成和重要性?

什么是网络协议&#xff1f; 网络协议是在计算机网络中&#xff0c;用于规定通信实体之间进行数据传输和通信的规则集合。网络协议涵盖了各种通信细节&#xff0c;包括数据包格式、错误处理、数据传输速率等&#xff0c;是用于分组交换数据网络的一种协议&#xff0c;其任务仅…