【uniapp】uniapp使用高德地图定位打包成安卓app的一些记录,比如打包后定位失效、

news2025/1/12 1:08:10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、创建你的uniapp
    • 1.打开Dcloud开发者后台
    • 2.下载你的证书、获取你的SHA1安全码、证书私钥密码
  • 二、打开高德开放平台申请key
    • 1.打开官网
    • 2.创建一个应用
  • 三、在uniapp中修改参数
  • 四、在地图中使用
  • 五、效果图
  • 六、打包生成app
  • 总结


前言

我的项目是uniapp打包成安卓app,这里不会讲解微信小程序之类的踩坑,只记录app端的用法

首先要知道,定位是返回经纬度,地图是渲染页面。这个不能搞混。
在uniapp中有map组件,具体可看官网的文档map的使用直通车
在这里插入图片描述

wgs84是GPS的经纬度坐标,gcj02是国测局的经纬度,我们使用的是高德地图,所以使用国测局。

谷歌地图使用 wgs84 坐标,其他地图使用 gcj02 坐标,用错坐标类型会显示偏移。


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建你的uniapp

使用HbuilderX一键创建,这个不多说。进入主题

1.打开Dcloud开发者后台

传送门
用你的账号密码登录,看你的应用列表
在这里插入图片描述

2.下载你的证书、获取你的SHA1安全码、证书私钥密码

点击蓝色标题名字进去查看详情
在这里插入图片描述
点击下载证书会有一个弹框,有的没有会直接下载。去文件管理里面照我说的做。
证书是最后面用来打包生成app的


然后点开你的证书详情,不是你下载的文件,是下载证书旁边的按钮
在这里插入图片描述
在这里插入图片描述

这里是你的证书别名和SHA1安全编码,还有个按钮是私钥密码

这两个东西,证书别名是用来打包的
SHA1是用来给高德地图的
还有个证书私钥密码,也是用来打包的

记住这三个东西的位置,或者复制下来保存text在项目中

二、打开高德开放平台申请key

1.打开官网

高德地图开发者平台直通车
在这里插入图片描述
登录你的账号,推荐手机号注册,然后再用手机号去关联QQ+微信。

2.创建一个应用

在这里插入图片描述

登录进入后台之后,点击应用管理=》我的应用=》创建新应用

在这里插入图片描述


创建应用好了之后,点击右边的添加。为你的应用添加一个key
在这里插入图片描述
这里添加只能选安卓,如果你要打包成苹果,你再添加一个key就好了。uniapp是区分了苹果和安卓的key的。不会冲突

在这里插入图片描述
添加成功之后,会有一个key值,复制它

三、在uniapp中修改参数

在这里插入图片描述
在这里插入图片描述
这里有定位和地图两个。两个都需要填入key

四、在地图中使用

html

<view class="mapcell">
	<map :latitude="latitude"  
	:longitude="longitude" 
	scale="18"  
	:markers="markers" 
	:show-location="true" 
	:controls="controls" 
	@controltap="refresh" >
	</map>
</view>

在这里插入图片描述
属性都在官网里面有,看着来用,这里不做多解释。
css

.mapcell{
	width 100%
	height 440rpx
	margin-bottom 30rpx
	padding 0  24rpx
	map{
		width:100%;
		height:100%;
	}
}

js
放在methods里面

// 获取定位
getlocation(){
	var that =this
	uni.getLocation({
		type: 'gcj02',//国测局
		geocode: 'true',
		success: function (res) {
			console.log('当前位置的经度:' + res.longitude);
			console.log('当前位置的纬度:' + res.latitude);
			console.log('当前位置:' + JSON.stringify(res));
			  
			// 创建地图坐标对象
			var point = new plus.maps.Point(res.longitude, res.latitude);
			//静态方法,反向地理编码
			plus.maps.Map.reverseGeocode(point, {},(event)=>{
				var address = event.address; // 转换后的地理位置
				that.locationaddress=address // 重新赋值
			},function(e) {
				console.log("失败回调",e);
			});
			// 赋值经纬度,从而得到当前位置
			that.latitude=res.latitude
			that.longitude=res.longitude 

			// 地图上显示所在图标开始
			let arr =[{
				id:0,
				longitude:res.longitude,
				latitude:res.latitude,
				name:"所在位置"
			}]
			let markers = []
			for (var i=0;i<arr.length;i++){
				markers=markers.concat({
				id:arr[i].id,
				latitude: arr[i].latitude,//纬度
				longitude: arr[i].longitude,//经度
				callout:{//自定义标记点上方的气泡窗口 点击有效
					content:arr[i].name,//文本
					color:'#ffffff',//文字颜色
					fontSize:18,//文本大小
					borderRadius:8,//边框圆角
					bgColor:'#00c16f',//背景颜色
					display:'ALWAYS',//常显
				},
				iconPath:'../../../static/loca.png',
				width:24,
				height:24
			})
		}
		that.markers=markers; // markers就是地图选点一样的功能,显示小坐标
		// 地图上显示所在图标结束
		that.controls=[{
			id:0,
			position:{//控件在地图的位置
				left:15,
				top:15,
				width:24,
				height:24
			},
			iconPath:'../../../static/refresh_map.png'
		}]
	},
	// 定位失败
	fail: function (err) {
		uni.showToast({
			title: err,
			icon:'none'
			});
		}
	})
},
// 点击刷新方法
refresh(e){
	this.getlocation();
},

变量请在data中定义,locationaddress这个是详细地址,看效果图

longitude 中心经度
latitude 纬度
scale 缩放级别
markers 地图显示小坐标
show-location 显示带有方向的当前定位点

这两个就是刷新定位
controls 显示控件
@controltap 点击控件方法

在这里插入图片描述
这个方法是用来获取详细地址的↑


五、效果图


效果如图

六、打包生成app

发行=》点击第一个【原生app云打包】
在这里插入图片描述

总结

如果打包之后定位失效,思考一下几个问题
SHA1是否一致,检查高德地图和Dcloud里面的信息
包名是否一致,打包的时候需要输入包名,要一致

证书使用自有证书,因为高德地图的SHA1编码就是那个证书里面的。公共测试证书没有那个编码,所以也不会起作用。如果定位有偏差检查一下是不是国测局

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

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

相关文章

快速傅里叶变换FFT和逆变换的python编程

0. 预备知识 快速傅里叶变换旨在解决离散傅里叶变换DFT计算量大效率低的问题。当我们想要抑制噪声提取出某段信号中的有效信息时&#xff0c;如系统模型辨识或者是使用高精度力传感器测量人体腕部寸关尺脉搏信号这类应用&#xff0c;应该如何设计采样流程&#xff1f; 首先&a…

《通讯录》思路及代码实现详解

目录 一、通讯录功能实现的详细描述 二、通讯录的代码及思路实现 2、1 定义联系人结构体 2、2 初始化就结构体与释放动态开辟空间的实现 2、3 菜单打印 2、4 添加联系人信息 2、5 删除联系人信息 2、6 查询联系人信息 2、7 修改联系人信息 2、8 打印所有联系人信息 2、9 排序整…

75. 序列模型的代码实现

1. 训练 在了解了上述统计工具后&#xff0c;让我们在实践中尝试一下&#xff01; 首先&#xff0c;我们生成一些数据&#xff1a;(使用正弦函数和一些可加性噪声来生成序列数据&#xff0c; 时间步为 1,2,…,1000 。) %matplotlib inline import torch from torch import nn…

新手nvm npm 卸载不用依赖包,项识别为 cmdlet、函数、脚本文件,等命令集合

nvm安装包&#xff1a;Releases coreybutler/nvm-windows GitHub下载ta就不用单独下载node了注意:vnm安装位置尽量不要动C:\Users\Administrator\AppData\Roaming\nvm\settings.txt增加下面代码node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.t…

java+Springboot交通事故档案管理系统

系统分为用户和管理员两个角色 用户的主要功能有&#xff1a; 1.用户注册和登陆系统 2.用户查看警察相关信息 3.用户查看我的相关事故信息&#xff0c;可以对交通事故进行交通申诉 4.用户查看交通申诉审核信息 5.退出登陆 管理员的主要功能有&#xff1a; 1.管理员输入账户登陆…

Metasploit渗透框架介绍及永恒之蓝复现

Metasploit渗透框架介绍及永恒之蓝复现一、Metasploit渗透框架介绍1.1 名词解释1.2 MSF简介1.3 MSF框架结构1.4 MSF命令汇总1.4.1 常用命令1.4.2 基本命令1.4.3 Exploits模块1.4.4 漏洞名称规则1.5 MSF模块介绍1.5.1 auxiliary(辅助模块)1.5.2 exploits(漏洞利用模块)1.5.3 pay…

Open3D 泊松盘网格采样(Python版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在图形的许多应用中,特别是在渲染中,从蓝色噪声分布生成样本是很重要的。然而,现有的有效技术不容易推广到二维以外。不过泊松盘采样是个例外,它允许在O(N)时间内生成泊松盘样本,而且该方法很容易在任意维度上…

分布式CAP和BASE理论学习笔记

参考至&#xff1a;https://blog.csdn.net/solihawk/article/details/124442443 1. CAP理论 CAP理论是计算机科学家Eric Brewer在2000年提出的理论猜想&#xff0c;在2002年被证明并成为分布式计算领域公认的定理&#xff0c;其理论的基本观念是&#xff0c;在分布式系统中不…

加密算法 AES和RSA

一&#xff0c;加密&#xff08;一&#xff09;加密基础&#xff1f;通过互联网发送数据&#xff0c;数据可能会被第三者恶意窃听&#xff0c;造成损失。因此需要给重要的数据进行加密&#xff0c;加密后的数据被称为“密文”。接收方通过解除加密或得原本的数据&#xff0c;把…

人工智能卷积算法

文章目录前言数字信号处理与卷积运算卷积公式与计算过程边缘卷积计算与0填充NumPy卷积函数二维矩阵卷积计算图像卷积应用实例总结前言 卷积运算实际上是一种常见的数学方法&#xff0c;与加法&#xff0c;乘法等运算类似&#xff0c;都是由两个输入的到一个输出。不同的是&…

迷宫问题---数据结构实践作业

迷宫问题—数据结构实践作业 ✅作者简介&#xff1a;大家好,我是新小白2022&#xff0c;让我们一起学习&#xff0c;共同进步吧&#x1f3c6; &#x1f4c3;个人主页&#xff1a;新小白2022的CSDN博客 &#x1f525;系列专栏&#xff1a;算法与数据结构 &#x1f496;如果觉得博…

什么是HAL库和标准库,区别在哪里?

参考文章https://blog.csdn.net/u012846795/article/details/122227823 参考文章 https://zhuanlan.zhihu.com/p/581798453 STM32的三种开发方式 通常新手在入门STM32的时候&#xff0c;首先都要先选择一种要用的开发方式&#xff0c;不同的开发方式会导致你编程的架构是完全…

Java 面向对象程序设计 消息、继承与多态实验 课程设计研究报告

代码&#xff1a;Java计算机课程设计面向对象程序设计对战游戏SwingGUI界面-Java文档类资源-CSDN文库 一、课程设计内容 一个游戏中有多种角色(Character)&#xff0c;例如&#xff1a;国王&#xff08;King&#xff09;、皇后&#xff08;Queen&#xff09;、骑士&#xff0…

【Linux多线程】

Linux多线程Linux线程概念什么是线程线程的优点线程的缺点线程异常线程用途Linux进程VS线程进程和线程进程的多个线程共享Linux线程控制POSIX线程库线程创建线程等待线程终止分离线程线程ID及进程地址空间布局Linux线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程…

JavaScript 如何正确的分析报错信息

文章目录前言一、报错类型1.控制台报错2.终端报错二、错误追查总结前言 摸爬滚打了这么长时间…总结了一些排查错误的经验, 总的来说, 这是一篇JavaScript新手向文章. 里面会有些不那么系统性的, 呃, 知识? 一、报错类型 报错信息该怎么看, 怎么根据信息快速的追查错误. 1.…

瑞吉外卖项目

技术选型&#xff1a; 1、JAVA版本&#xff1a;JDK11 2、数据库&#xff1a;mysql5.7 Navicat 3、后端框架&#xff1a;SpringBoot SpringMVC MyBatisPlus 4、工具类&#xff1a;发邮件工具类、生成验证码工具类 5、项目优化&#xff1a;Nginx、Redis、读写分离 项目来…

2022. 12 青少年机器人技术等级考试理论综合试卷(五级)

2022.年12月青少年机器人技术等级考试理论综合试卷&#xff08;五级&#xff09; 分数&#xff1a; 100 题数&#xff1a; 30 一、 单选题(共 20 题&#xff0c; 共 80 分) 1.下列程序执行后,串口监视器显示的相应内容是&#xff1f; &#xff08; &#xff09; A.1 B.2 C.4 D.…

WPF绑定(Binding)下的数据验证IDataErrorInfo

绑定下的数据验证 WPF中Binding数据校验、并捕获异常信息的三种方式讲到了三种方式&#xff0c;其中使用ValidatinRule的方式比较推荐&#xff0c;但是如果一个类中有多个属性&#xff0c;要为每个属性都要声明一个ValidatinRule&#xff0c;这样做非常麻烦。可以让类继承自ID…

【High 翻天】Higer-order Networks with Battiston Federico (8)

目录传播与社会动力学&#xff08;2&#xff09;Opinion and cultural dynamicsVoter modelMajority modelsContinuous models of opinion dynamicsCultural dynamics传播与社会动力学&#xff08;2&#xff09; 在本节将讨论一些观点和文化动力学模型&#xff0c;它们基于物理…

【JavaSE】反射

一、概念反射是在运行期间&#xff0c;动态获取对象的属性和方法二、相关的类在Java的反射里主要有以下几个类&#xff1a;Class类&#xff0c;这是反射的起源&#xff0c;反射必须要先获取Class对象&#xff0c;其次是Field类&#xff0c;当我们需要通过反射获取私有字段时就需…