使用uniapp开发获取地理位置

这篇具有很好参考价值的文章主要介绍了使用uniapp开发获取地理位置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

老板要求做一个微信小程序,后面又希望能转为app. 所以选择了uniapp开发. 我的体验和感想就是以后不用uniapp了. 资源不多,学习了可能用处也不大.适合外包的干.这里写一下使用uniapp开发微信小程序获取地理位置

基本逻辑是使用uniapp的api首先获得地理经纬度位置等信息(在这之前可以先让用户授权,然后根据获得的地理位置信息利用腾讯的服务得到具体的位置名字.

这里我主要利用uniapp开发微信小程序.

基本流程

getsetting主要用于获取用户当前设置

这里重要的就是scope.xx查看用户的授权

uni.getSetting({success: (res) => {
						if (res.authSetting && res.authSetting.hasOwnProperty("scope.userFuzzyLocation")) {
							console.log('获取到auth',res)
							if (res.authSetting["scope.userFuzzyLocation"]) {
								this.getCityInfo();
							} else {
								uni.showModal({
									title: "提示",
									content: "请重新授权获取你的地理位置,否则部分功能将无法使用.\r\n提示:点击小程序右上角的三个点在设置中修改授权",
									success: (res) => {
										if (res.confirm) {
											uni.openSetting({
												success: () => this.getCityInfo()
											});
										} else
										{
											this.getCovidData();
										}
									},
								});
							}
						} else {
							console.log('正确')
							console.log(res)
							this.getCityInfo();
						}
					}
				})

这里的scope.userFuzzyLocation就是需要用户授权的,res.authsetting如果包含这个且为true就进行下一步操作.如果没有这个选项,即res.authSetting.hasOwnProperty(“scope.userFuzzyLocation”)返回false,这样就需要去授权.

getCityInfo() {
				console.log('调用getCityInfo')
					uni.authorize({
						scope: "scope.userFuzzyLocation",
						success: () => {
							console.log('授权')
							//做授权之后的操作
								},
								fail: (res) => {
									
								}
						},
						fail: (res) => {
							console.log(res);
							this.loadError();
						}
					})
			},

uni.authorize 提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口.

uni.authorize({
    scope: 'scope.userLocation',
    success() {
        uni.getLocation()
    }
})

如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。如果用户之前拒绝了授权,此接口会直接进入失败回调.

当调用这个接口之后就能有对应的scope.xx的值了,要么为true要么为false. authorize会跳出一个弹窗,请求获取权限,如果接受了那就没多大事了.

如果没有接受,就可以调取

uni.openSetting({
		success: () => this.getCityInfo()
	});

调起客户端小程序设置界面,返回用户设置的操作结果.

uni.openSetting会打开一个这样的界面让用户设置.用户在这里允许授权即可.

具体设置

在uniapp中,需要设置一些需要用户授权的权限.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xp1wDkMD-1672047026640)(null)]

在uniapp中打开manifest.json中的源码视图,找到permission如上图.

添加需要的scope和requirePrivateInfos.

同时getsetting中需要看scope.xx是否存在以及是否为true.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bmJlWHHY-1672047026610)(null)]

使用uniapp开发获取地理位置

uni.authorize中也需要获取需要用户授权的scope

注意

在微信小程序中,使用一些平台提供的接口需要权限.

比如获取当前的地理位置、速度需要小程序的类目相符合,而获取当前的模糊地理位置也需要申请权限.不过这个接口相对来说比较好申请,但是这个接口有点bug,我一开始申请之后当天模拟器上有点问题,不过后面就好了.申请了之后可以利用腾讯提供的sdk将经纬度转为具体的位置名.

代码基本如下文章来源地址https://www.toymoban.com/news/detail-466018.html

uni.getFuzzyLocation({
								type: "gcj02", //  wgs84: 返回GPS坐标,gcj02: 返回国测局坐标
								success: res => {
									console.log('获取位置', res)
									const {
										latitude,
										longitude
									} = res;
									const location = {
										latitude,
										longitude
									};
									this.qqmapsdk.reverseGeocoder({
										location,
										success: (res) => {
											let loginAddress = res.result.ad_info.name
											console.log(loginAddress)
											this.flag = true;
											// 获取信息
											this.country = loginAddress.split(',')[0];
											this.province = loginAddress.split(',')[1];
											this.city = loginAddress.split(',')[2];
											this.district = loginAddress.split(',')[3];
											this.formvalue.location = this.province + '>' +
												this.city + '>' + this.district;
										
											this.donext();
										},
										fail: (res) => {
										
											console.log(res)
										},
									});
								},
								fail: (res) => {
									console.log(res)
								
								}
							});

参考资料

  1. 微信小程序JavaScript SDK | 腾讯位置服务 (qq.com)
  2. uni-app微信小程序获取用户地理位置信息_DOM曼珠沙华的博客-CSDN博客_uni.getsetting

到了这里,关于使用uniapp开发获取地理位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp---- 微信小程序中获取当前地理位置(高德地图)

    1.在manifest.json中选择微信小程序配置,勾选上位置接口。 2.在manifest.json中选择源码视图,添加permission和requiredPrivateInfos 3.进入微信公众平台添加合法域名(不能少但是可以放在最后添加,调试期间可以打开开发者工具的不校验合法域名) 4.下载amap-wx.130.js,并且进行引用,

    2024年02月12日
    浏览(39)
  • 微信小程序定位开发 逆地理位置查询 经纬度获取位置名称

    一. 微信小程序获取用户定位==经纬度(官方) (1)官方方法:wx.getLocation(Object object) (2)官方链接:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html (3)关键点: 申请权限 :在小程序管理后台,「开发」-「开发管理」-「接口设置」中申请开通该接口权限。

    2024年02月16日
    浏览(35)
  • 使用JS获取当前地理位置的两种方法

    HTML5 Geolocation API HTML5 Geolocation API是W3C定制的用于获取用户地理位置信息的标准API,它可以使用纯JavaScript来获取用户的GPS坐标信息,这是一种免费的获取位置的方法。 IP定位API 如果HTML5 Geolocation API无法满足需求,可以使用IP定位API来获取用户的位置信息。它可以根据用户IP地址

    2024年02月06日
    浏览(35)
  • Unity之获取用户地理位置

    1.1 利用bilibili的api 【未知稳定性】 lua代码  1.2 利用baidu api 【配额超限,需要扩充配额,需要联系官方】 2.1 API: \\\"https://api.ipify.org\\\" 和 心知天气官网“心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案” 获取公网IP 根据IP获取地理信息和天气信息,json反解析

    2024年02月14日
    浏览(32)
  • Unity 获取手机地理位置信息

    在游戏的开发过程中,有时候会遇到需要获取玩家位置信息的需求,比如显示玩家所在的国家城市等。 有一下方法可以参考: 可以根据手机的地区和语言来做判断。 根据IP来判断所处的位置,阿里云啥的都有对应的接口服务。 根据GPS来判断。 以上方法都各有利弊吧,这里简

    2024年02月12日
    浏览(37)
  • 通过ip获取地理位置信息

    GeoLite2-City.mmdb 文件是 MaxMind 公司提供的一个免费的 IP 地址与城市地理位置映射数据库文件。它包含了 IP 地址范围与对应的城市、地区、国家、经纬度等地理位置信息的映射。这种数据库文件可以用于识别访问您的应用程序或网站的用户的地理位置,从而实现针对不同地区的

    2024年02月12日
    浏览(33)
  • Golang — 根据IP获取地理位置信息

    1 ip2region 2 geoip2-golang ip2region 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。 特点: 是一个开源的IP地理位置库。 标准化的数据格式 每个 ip 数据段的 region 信息都固定了格式:国家|区域|省

    2024年02月14日
    浏览(33)
  • 微信小程序 通过获取地理位置查看天气

      1.在app.json中写入 2.申请和风天气APIKEY 和风天气开发平台 ~ 高效强大的天气API,天气SDK和天气插件 3.在js文件中设置变量 4.获取天气代码  5.根据坐标获取城市  6.获取天气情况   结束啦。

    2024年02月09日
    浏览(39)
  • 分享几个IP获取地理位置的API

    一、请求接口(GET): https://ip.taobao.com/outGetIpInfo?ip=IP地址accessKey=alibaba-inc 二、返回数据格式: 三、频次限制: 每个用户的访问频率需小于1qps 四、文档说明: http://ip.taobao.com/instructions.html 五、代码片段: 一 、请求接口(GET): http://freeapi.ipip.net/ip地址字串 二、返回数据

    2024年02月03日
    浏览(35)
  • uni-app获取手机号-获取用户地理位置-根据位置获取经纬度跳转高德

    1.获取手机号首先要先登录拿到code,用code去获取session_key 2.获取 code需要知道自己的AppID(小程序ID)和AppSecret(小程序密钥) 3.解密后得到手机号  登录微信公众平台拿到自己的AppID(小程序ID)和AppSecret(小程序密钥)  微信公众平台  补充获取 code: 补充 获取openId: 获取session_key:

    2024年02月03日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包