uni-app 获取当前位置的经纬度以及地址信息

news2024/9/20 23:12:15

文章目录

    • uni.getLocation(objc)
    • 获取经纬度和地址
    • 调试结果
    • 问题

uni-app 获取当前位置的经纬度以及地址信息

uni.getLocation(objc)

uni-app官方文档定位API: uni.getLocation(OBJECT)

uni.getLocation({
	type: 'wgs84',
	success: function (res) {
		console.log('当前位置的经度:' + res.longitude);
		console.log('当前位置的纬度:' + res.latitude);
	}
});

获取经纬度和地址

  1. 去高德开放平台注册账号,添加应用,申请个AppKey

  2. 设置

1)配置勾选系统定位和高德定位,配置高德的“用户名”和“app key”
在这里插入图片描述

2)添加定位权限
在这里插入图片描述
<uses-permission android:name="android.permission.LOCATION"/>

  1. 上代码
<template>
  <view class="container">
    <text class="title">定位示例</text>
    <button @click="getLocation">获取经纬度</button>
    <view v-if="location">
      <text>纬度: {{ location.latitude }}</text>
      <text>经度: {{ location.longitude }}</text>
      <text>速度: {{ location.speed }} m/s</text>
      <text>精度: {{ location.accuracy }} m</text>
    </view>
	<view v-if="address">
		<text>位置: {{ address.formatted_address }} </text>
	</view>
    <view v-if="error">
      <text>错误信息: {{ error.message }}</text>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      location: null,
	  address: null,
      error: null
    };
  },
  methods: {
    getLocation() {
      uni.getLocation({
        type: 'wgs84',
        success: (res) => {
          this.location = {
            latitude: res.latitude,
            longitude: res.longitude,
            speed: res.speed,
            accuracy: res.accuracy,
          };
		  this.reverseGeocode(res.latitude,res.longitude);
          console.log('定位成功:', res);
        },
        fail: (err) => {
          this.error = err;
          console.error('定位失败:', err);
        }
      });
    },
	// 逆地理编码函数
	reverseGeocode(latitude, longitude) {
	  const key = '46XXXXXXXXXXXXXXXXXXXXXX0a'; // 换成你自己的AppKey
	  const url = `https://restapi.amap.com/v3/geocode/regeo?key=${key}&location=${longitude},${latitude}`;
	 
	  uni.request({
	    url: url,
	    method: 'GET',
	    success: (res) => {
	      if (res.statusCode === 200 && res.data.status === '1') {
			  this.address = {
			    formatted_address: res.data.regeocode.formatted_address,
			  };
	        console.log(res.data.regeocode);
	      } else {
	        console.error('逆地理编码失败:', res.data);
	      }
	    },
	    fail: (error) => {
	      console.error('请求失败:', error);
	    }
	  });
	}
  },
  onLoad() {
    this.getLocation();
  }
};
</script>

<style>
.container {
  padding: 20px;
}

.title {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 20px;
}

button {
  margin-bottom: 20px;
}

text {
  display: block;
  margin-bottom: 10px;
}
</style>

1)先调用uni.getLocation(objc) 函数可以拿到经纬度信息
2)再调用高德地图你地理编码的API获取经纬度对应的地址信息。

调试结果

在Safari上可以获取到经纬度和位置信息:

在这里插入图片描述

在Chrome上调试获取不到;

打包apk手机上也可以获取到经纬度和位置信息。

问题

1)uni.getLocation(objc) 这个函数有一个参数geocode

在这里插入图片描述
App上支持这个方法直接获取地址信息,需要设置 geocode 位 true,同时type参数需要设置成gcj02。

    getLocation() {
      uni.getLocation({
        type: 'gcj02',
		geocode: true,
        success: (res) => {
          this.location = {
            latitude: res.latitude,
            longitude: res.longitude,
            speed: res.speed,
            accuracy: res.accuracy,
			address: res.address,
          };
          console.log('定位成功:', res);
        },
        fail: (err) => {
          this.error = err;
          console.error('定位失败:', err);
        }
      });
    },

我试了试,手机打包可以获取到经纬度,但是位置信息没拿到,不知道是哪里的配置问题,示例如下:

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Easy-Paas 功能演示

1.登录 http://192.168.11.10:8100/web 账号&#xff1a;admin 密码&#xff1a;admin 2.主页

阿里巴巴商品搜索API返回值中的图片与详情链接

在使用阿里巴巴&#xff08;Alibaba&#xff09;的商品搜索API时&#xff0c;通常返回的JSON或其他格式的数据中会包含商品的相关信息&#xff0c;如标题、价格、图片链接、详情页链接等。这些链接&#xff08;特别是图片和详情页的链接&#xff09;通常设计为直接可用的URL&am…

buildroot构建根文件系统

目录 嵌入式系统1. Bootloader&#xff08;引导程序&#xff0c;如U-Boot&#xff09;2. Linux内核3. 根文件系统 根文件系统使用buildroot编译文件系统Buildroot目录简介选择配置文件Buildroot其他分析 嵌入式系统 嵌入式系统的三大部分&#xff1a;bootloader&#xff08;如…

Ceph RBD使用

CephRBD使用 一、RBD架构说明二、RBD相关操作1、创建存储池2、创建img镜像2.1 创建镜像2.1.2 查看镜像详细信息2.1.3 镜像其他特性2.1.4 镜像特性的启用和禁用 3、配置客户端使用RBD3.1 客户端配置yum源3.2 客户端使用admin用户挂载并使用RBD3.2.1 同步admin账号认证文件3.2.2 …

安数云助力某省移动部署全省云安全资源池

随着云计算技术的拓展&#xff0c;安全运维的兴起以及5G新技术的试点应用&#xff0c;传统烟囱式产品堆砌的安全解决方案已难以满足各新兴业务的安全保障需求。用户大部分业务逐步迁移到了云上&#xff0c;所有资源都以虚拟化的形态存在&#xff0c;以达到集中式的管理。 云安全…

MIT6.S081最详解析与归纳——lab11:network driver

Lab11主题&#xff1a;network driver &#xff08;一&#xff09;xv6网络协议栈&#xff08;二&#xff09;networking&#xff08;1&#xff09;e1000_transmit&#xff08;2&#xff09;e1000_recv &#xff08;三&#xff09;完结感想 &#xff08;一&#xff09;xv6网络协…

股指期货交割手续费怎么算?

股指期货交割手续费是投资者在股指期货合约到期进行交割时必须支付的费用&#xff0c;主要用于覆盖交易所和期货公司的运营成本。其计算方式与开仓、平仓手续费相似&#xff0c;但标准有所不同。#股指期货# 要熟悉股指期货的保证金和手续费计算&#xff0c;可以遵循以下公式&a…

浏览器百科:网页存储篇-Cookie应用实例(三)

1.引言 在前面的章节中&#xff0c;我们详细介绍了 Cookie 的基本概念、属性以及如何在 Chrome 浏览器中管理和调试 Cookie。理解这些理论知识之后&#xff0c;下一步是将其应用于实际开发中。在本篇文章中&#xff0c;我们将通过具体的代码示例&#xff0c;演示如何在网页中设…

并发集合:ConcurrentHashMap解析

1、ConcurrentHashMap 介绍 1.1、ConcurrentHashMap 概述 ConcurrentHashMap 是线程安全的HashMap&#xff0c;但最早的线程安全的HashMap 是 HashTable &#xff0c;HashTable 现在已经弃用&#xff0c;因为它是使用synchronized 来保证线程安全&#xff0c;性能比较低&#…

无人机地理测绘技术详解

无人机地理测绘技术&#xff0c;作为现代测绘领域的一项重要革新&#xff0c;融合了无人机技术、遥感技术、地理信息系统&#xff08;GIS&#xff09;及全球定位系统&#xff08;GPS&#xff09;等多学科技术。该技术通过无人机搭载的高精度传感器&#xff0c;如相机、激光雷达…

Midjourney 图生图,真人二次元保持一致性,场景多元可选择

Midjourney 图生图&#xff0c;真人二次元保持一致性&#xff0c;场景多元可选择 Midjourney 拥有强大的图生图的功能&#xff0c;下面我们就来看一下&#xff0c;如何在我们的AceDataCloud网站上实现将照片切换成任意的二次元场景&#xff0c;同时保持人物的一致性。 注册链…

Azure Data Factory 多选选项集不受支持

在用ADF往外部推数据时&#xff0c;会碰到CRM的一种数据类型&#xff0c;多选下拉框&#xff0c;如下图中的 如果我们把多选字段输入源字段中&#xff0c;会得到如下的提示 查询官方文档&#xff0c;则有如下的说法 所以把值往外推就需要变通下&#xff0c;例如使用一个文本字段…

【一起学Rust | 框架篇 | Tauri2.0框架】command拆分模块

文章目录 前言1. 规划目录结构2. 编写command模块3. 注册command4. 编写utils模块 前言 上期曾提及&#xff0c;tauri 的 command 拆分模块乃是一种更为合理的方式。倘若将所有内容皆写入src-tauri/src/main.rs之中&#xff0c;将会致使代码难以进行维护&#xff0c;并且会显得…

CAN总线8路开关量DI输入8路带隔离集电极开路输出模块,数字量输入输出联动——DAM-C3022

#阿尔泰科技 简介&#xff1a; DAM-C3022为8路带隔离数字量输入&#xff0c;8路带隔离集电极开路输出&#xff0c;数字量输入与数字量输出实现联动&#xff0c;通道一一对应&#xff1b;CAN通讯接口&#xff0c;CAN2.0A标准帧格式&#xff0c;支持CAN-OPEN协议。 指标参数&am…

DOS介绍及最常用的20个dos操作命令

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

IObit Uninstaller Pro v13.6.0.5 绿色便携免安装版本 下载

功能非常强大好用的软件卸载清理工具 下载地址(资源制作整理不易&#xff0c;下载使用需付费&#xff0c;不能接受请勿浪费时间下载) 链接&#xff1a;https://pan.baidu.com/s/1I7lbixooii9ezSrp3X-y-w?pwd716l 提取码&#xff1a;716l

深度学习中的ONNX模型部署(打包为exe独立运行)详细教程

摘要&#xff1a;在本教程中&#xff0c;详细介绍了如何将ONNX模型部署为独立的可执行文件。从环境准备开始&#xff0c;介绍了ONNX Runtime及其GPU版本的安装&#xff0c;确定CUDA和cuDNN版本的兼容性。给出了使用ONNX Runtime加载和推理模型&#xff0c;处理输入和输出数据的…

中国电子学会Python3级等级考试202403客观题解析3

18、 在 Python 中 print(tuple(range(0,8,3)))语句&#xff0c;执行的结果是&#xff1f;&#xff08; &#xff09; A (0,3,6) B (0,2,4,6) C (0,2,4,6) D (0,4) 答案&#xff1a;A range(0,8,3)生成的数据包括0&#xff0c;3&#xff0c;6&#xff1b;tuple()函数将其…

HarmonyOS开发实战( Beta5版)延迟加载lazy-import实践使用指导

随着应用功能持续增加&#xff0c;应用规模不断扩大&#xff0c;依赖的模块文件逐渐变多&#xff0c;应用冷启动加载模块的时间也越来越长。而在实际冷启动过程中执行了很多应用整体依赖但当前未使用的文件&#xff0c;此时可以通过延迟加载 lazy-import 的方法延缓对这些冗余文…

独立产品灵感周刊 DecoHack #066 – 下周苹果发布会要来了

本周刊记录有趣好玩的独立产品/设计/开发相关内容&#xff0c;每周一发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以到 官网查看更多内容。可以 邮件订阅或 RSS订阅本周刊。欢迎通过 Twitter 私信推荐或投稿。 &#x1f4bb; 产品推荐 1. Apple Bento Slides…